carb::tasking::SemaphoreWrapper
Defined in carb/tasking/TaskingUtils.h
-
class SemaphoreWrapper
Wrapper for a carb::tasking::Semaphore.
Note
SemaphoreWrapper can be used for Throttling tasks.
Public Functions
-
inline SemaphoreWrapper(unsigned value)
Constructs a new SemaphoreWrapper object.
- Parameters
value – The initial value of the semaphore (i.e. how many times acquire() can be called without blocking).
-
inline SemaphoreWrapper(ITasking*, unsigned value)
Constructs a new SemaphoreWrapper object.
Note
Deprecated: ITasking no longer needed.
- Parameters
value – The initial value of the semaphore (i.e. how many times acquire() can be called without blocking).
-
inline ~SemaphoreWrapper()
Destructor.
-
inline void release(unsigned count = 1)
Increases the value of the semaphore, potentially unblocking any threads waiting in acquire().
- Parameters
count – The value to add to the Semaphore’s value. That is, the number of threads to either unblock while waiting in acquire(), or to allow to call acquire() without blocking.
-
inline void acquire()
Reduce the value of the Semaphore by one, potentially blocking if the count is already zero.
Note
Threads that are blocked by acquire() must be released by other threads calling release().
-
inline bool try_acquire()
Attempts to reduce the value of the Semaphore by one.
If the Semaphore’s value is zero, false is returned.
- Returns
true if the count of the Semaphore was reduced by one; false if the count is already zero.
-
template<class Rep, class Period>
inline bool try_acquire_for(const std::chrono::duration<Rep, Period> &dur) Attempts to reduce the value of the Semaphore by one, waiting until the duration expires if the value is zero.
- Returns
true if the count of the Semaphore was reduced by one; false if the duration expires.
-
template<class Clock, class Duration>
inline bool try_acquire_until(const std::chrono::time_point<Clock, Duration> &tp) Attempts to reduce the value of the Semaphore by one, waiting until the given time point is reached if the value is zero.
- Returns
true if the count of the Semaphore was reduced by one; false if the time point is reached by the clock.
-
inline ITasking *getTasking() const
Returns the acquired ITasking interface that was used to construct this object.
Note
Deprecated: Use carb::getCachedInterface instead.
-
inline SemaphoreWrapper(unsigned value)