Acquire a semaphore.
Returns $(D_KEYWORD true) if semaphore can not be acquired immediately.
Release a semaphore, incrementing the internal counter by one. When it was zero on entry and another coroutine is waiting for it to become larger than zero again, wake up that coroutine.
A bounded semaphore implementation.
This throws an Exception in $(D_PSYMBOL release()) if it would increase the value above the initial value.