You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
update with a more minimal fix and a better understanding of the
problem.
For the record:
Our deadlock occurred when the __all_claimed check passed, but when
another thread released the last element in the pool before we took
back up the lock. Doing the check inside of the lock (thus preventing
mutation of the claimed state for elements) closes the loophole for the
race.
Making the pool lock re-entrant and setting the condition variable
might not be required, but it affords us a little bit of extra safety.
0 commit comments