|
|
constexpr | Semaphore (std::nullptr_t=nullptr) noexcept |
| | Default ctor.
|
| |
| constexpr | Semaphore (const SemaphoreRaw resource) noexcept |
| | Constructs from SemaphoreParam. More...
|
| |
|
constexpr | Semaphore (Semaphore &&other) noexcept |
| | Move constructor.
|
| |
|
constexpr | Semaphore (const SemaphoreRef &other)=delete |
| |
|
constexpr | Semaphore (SemaphoreRef &&other)=delete |
| |
| | Semaphore (Uint32 initial_value) |
| | Create a semaphore. More...
|
| |
|
| ~Semaphore () |
| | Destructor.
|
| |
|
constexpr Semaphore & | operator= (Semaphore &&other) noexcept |
| | Assignment operator.
|
| |
|
constexpr SemaphoreRaw | get () const noexcept |
| | Retrieves underlying SemaphoreRaw.
|
| |
|
constexpr SemaphoreRaw | release () noexcept |
| | Retrieves underlying SemaphoreRaw and clear this.
|
| |
|
constexpr auto | operator<=> (const Semaphore &other) const noexcept=default |
| | Comparison.
|
| |
|
constexpr | operator bool () const noexcept |
| | Converts to bool.
|
| |
|
constexpr | operator SemaphoreParam () const noexcept |
| | Converts to SemaphoreParam.
|
| |
| void | Destroy () |
| | Destroy a semaphore. More...
|
| |
| void | Wait () |
| | Wait until a semaphore has a positive value and then decrements it. More...
|
| |
| bool | TryWait () |
| | See if a semaphore has a positive value and decrement it if it does. More...
|
| |
| bool | WaitTimeout (std::chrono::milliseconds timeout) |
| | Wait until a semaphore has a positive value and then decrements it. More...
|
| |
| void | Signal () |
| | Atomically increment a semaphore's value and wake waiting threads. More...
|
| |
| Uint32 | GetValue () const |
| | Get the current value of a semaphore. More...
|
| |
Semaphores (specifically, "counting semaphores"), let X number of threads request access at the same time, each thread granted access decrementing a counter. When the counter reaches zero, future requests block until a prior thread releases their request, incrementing the counter again.
Wikipedia has a thorough explanation of the concept:
https://en.wikipedia.org/wiki/Semaphore_(programming)
- Since
- This struct is available since SDL 3.2.0.
- Category:
- Resource