#include "WrappedSemaphore.h" using namespace bell; WrappedSemaphore::WrappedSemaphore(int count) { this->semaphoreHandle = CreateSemaphore(NULL, 0, count, NULL); } WrappedSemaphore::~WrappedSemaphore() { CloseHandle(this->semaphoreHandle); } int WrappedSemaphore::wait() { WaitForSingleObject(this->semaphoreHandle, INFINITE); return 0; } int WrappedSemaphore::twait(long milliseconds) { return WaitForSingleObject(this->semaphoreHandle, milliseconds) != WAIT_OBJECT_0; } void WrappedSemaphore::give() { ReleaseSemaphore(this->semaphoreHandle, 1, NULL); }