| 123456789101112131415161718192021222324252627 | 
							- #include "WrappedSemaphore.h"
 
- using namespace bell;
 
- WrappedSemaphore::WrappedSemaphore(int count) {
 
-   semaphoreHandle = dispatch_semaphore_create(0);
 
- }
 
- WrappedSemaphore::~WrappedSemaphore() {
 
-   dispatch_release(semaphoreHandle);
 
- }
 
- int WrappedSemaphore::wait() {
 
-   return dispatch_semaphore_wait(semaphoreHandle, DISPATCH_TIME_FOREVER);
 
- }
 
- int WrappedSemaphore::twait(long milliseconds) {
 
-   dispatch_time_t timeout =
 
-       dispatch_time(DISPATCH_TIME_NOW, (NSEC_PER_SEC / 1000) * milliseconds);
 
-   return dispatch_semaphore_wait(semaphoreHandle, timeout);
 
- }
 
- void WrappedSemaphore::give() {
 
-   dispatch_semaphore_signal(semaphoreHandle);
 
- }
 
 
  |