On Sat, Apr 10, 2021 at 9:55 PM Tal Shnaiderman <tal...@nvidia.com> wrote: > > The macro definitions of the following pthread functions > return incorrect values from the inner function return code. > > while pthread_barrier_init, pthread_barrier_destroy and > pthread_cancel return 0 in a case of success and non zero (errno) value > otherwise the shimming functions InitializeSynchronizationBarrier, > DeleteSynchronizationBarrier and TerminateThread return FALSE (0) > in a case of failure and TRUE(1) in a case of success. > > This issue was undetected as none of the functions return codes was > checked until such check was added in commit 34cc55cce6b1 ("eal: fix > race in control thread creation") exposing the issue by failing > pthread_barrier_init and rte_eal_init on Windows as a result. > > The fix aligned the return value of the 3 function with the expected > pthread API return values. > > Fixes: e8428a9d89f1 ("eal/windows: add some basic functions and macros") > Fixes: 34cc55cce6b1 ("eal: fix race in control thread creation")
Only the first Fixes: makes sense. The second commit you refer to relies on a working pthread implementation. -- David Marchand