tesseract
3.03
|
#include <svutil.h>
Public Member Functions | |
SVSemaphore () | |
Sets up a semaphore. | |
void | Signal () |
Signal a semaphore. | |
void | Wait () |
Wait on a semaphore. |
A semaphore class which encapsulates the main signalling and wait abilities of semaphores for windows and unix.
Sets up a semaphore.
Definition at line 125 of file svutil.cpp.
{ #ifdef _WIN32 semaphore_ = CreateSemaphore(0, 0, 10, 0); #elif defined(__APPLE__) char name[50]; snprintf(name, sizeof(name), "%d", random()); sem_unlink(name); semaphore_ = sem_open(name, O_CREAT , S_IWUSR, 0); if (semaphore_ == SEM_FAILED) { perror("sem_open"); } #else sem_init(&semaphore_, 0, 0); #endif }
void SVSemaphore::Signal | ( | ) |
Signal a semaphore.
Definition at line 141 of file svutil.cpp.
{ #ifdef _WIN32 ReleaseSemaphore(semaphore_, 1, NULL); #elif defined(__APPLE__) sem_post(semaphore_); #else sem_post(&semaphore_); #endif }
void SVSemaphore::Wait | ( | ) |
Wait on a semaphore.
Definition at line 151 of file svutil.cpp.
{ #ifdef _WIN32 WaitForSingleObject(semaphore_, INFINITE); #elif defined(__APPLE__) sem_wait(semaphore_); #else sem_wait(&semaphore_); #endif }