Torvald Riegel wrote: > > Are you suggesting that the pthread_yield manual page is wrong? Or that > > some warning should be added to it? I'm sure Michael Kerrisk will accept > > inputs. > > I don't think it's necessarily wrong, but if there's no actual run queue > because you have more or the same number of cores (or HW threads) > available than what the number of runnable OS threads is, then this > won't push through a FIFO run queue and thus won't order them one after > the other.
OK, I've forwarded your statement to Michael Kerrisk so that he may improve the man page. > Regarding the patch, why don't you just use the semaphore directly, but > wrap it as an atomic_int (which it is not)? 1) I did so because of portability issues: - GNU Pth (one of the platforms supported by the gnulib module) does not have semaphores. - I didn't want to dig into the semaphores API of Windows at this point. - Testing among POSIX platforms is incomplete, and I may need to revert back to mutexes on some (weird) platform. 2) In 10 years or so, we may wish to replace this 'struct atomic_int' by something provided by <stdatomic.h>. Bruno