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
Synchronization primitives should guarantee that their destructors might run concurrently with a sync function. This is explicitly required for latch, and should be extended to all other primitives to support use cases like this. It should be sufficient to make sure that no code is executed after the sync operation (similarly to how a delete this would be handled)
The text was updated successfully, but these errors were encountered:
std::condition_variable[_any] have special wording to this effect too:
There shall be no thread blocked on *this. [Note: That is, all threads shall have been notified; they may subsequently block on the lock specified in the wait. This relaxes the usual rules, which would have required all wait calls to happen before destruction. Only the notification to unblock
the wait must happen before destruction. The user must take care to ensure that no threads wait on *this once the destructor has been started, especially when the waiting threads are calling the wait functions in a loop or using the overloads of wait, wait_for, or wait_until that take a predicate. --end note]
Synchronization primitives should guarantee that their destructors might run concurrently with a sync function. This is explicitly required for
latch
, and should be extended to all other primitives to support use cases like this. It should be sufficient to make sure that no code is executed after the sync operation (similarly to how adelete this
would be handled)The text was updated successfully, but these errors were encountered: