SignalEvent
andCountdownEvent
have been updated to not useMutex
es internally- In the refactor,
wait_timeout
was changed to always wait for the full duration if the signal was never set, so the return value has been changed to reflect this. This is a breaking change - In the refactor,
CountdownEvent
was changed so that its counter is now isusize
instead of anisize
. Since it's an invalid state for the counter to be below zero, let's encode that in the type. This is a breaking change if you were directly using the counter value or its type before
- In the refactor,
CountdownEvent::guard
andCountdownGuard
, to provide scope-based increment/decrementWriterReaderPhaser
, a primitive that allows multiple wait-free "writer critical sections" against a "reader phase flip" that waits for currently-active writers to finish- also the related structs
PhaserCriticalSection
andPhaserReadLock
- also the related structs
CountdownEvent::wait_timeout
, to wait but also have a timeoutSignalEvent
, a primitive that lets one or more threads wait for a signal from another one
CountdownEvent
, a primitive that keeps a counter that allows you to block until it hits zero