fix breakage in pthread_cond_wait due to typo
due to accidental use of = instead of ==, the error code was always set to zero in the signaled wake case for non-shared cv waits. suppressing ETIMEDOUT (the only possible wait error) is harmless and actually permitted in this case, but suppressing mutex errors could give the caller false information about the state of the mutex. commit8741ffe625introduced this regression and commitd9da1fb8c5preserved it when reorganizing the code.
This commit is contained in:
@@ -163,7 +163,7 @@ relock:
|
||||
a_dec(&m->_m_waiters);
|
||||
|
||||
/* Since a signal was consumed, cancellation is not permitted. */
|
||||
if (e = ECANCELED) e = 0;
|
||||
if (e == ECANCELED) e = 0;
|
||||
|
||||
done:
|
||||
__pthread_setcancelstate(cs, 0);
|
||||
|
||||
Reference in New Issue
Block a user