fix failure of internal futex __timedwait to report ECANCELED
authorRich Felker <dalias@aerifal.cx>
Sat, 28 Feb 2015 04:25:45 +0000 (23:25 -0500)
committerRich Felker <dalias@aerifal.cx>
Sat, 28 Feb 2015 04:25:45 +0000 (23:25 -0500)
commit76ca7a5446a8aec2b671a401d5e1878c4704754e
treef28de9c011b65effa19b419bd923686a14efc500
parente346ff86c8faee901a7c2d502b5beb983b99f972
fix failure of internal futex __timedwait to report ECANCELED

as part of abstracting the futex wait, this function suppresses all
futex error values which callers should not see using a whitelist
approach. when the masked cancellation mode was added, the new
ECANCELED error was not whitelisted. this omission caused the new
pthread_cond_wait code using masked cancellation to exhibit a spurious
wake (rather than acting on cancellation) when the request arrived
after blocking on the cond var.
src/thread/__timedwait.c