tesseract  4.00.00dev
SVSemaphore Class Reference

#include <svutil.h>

Public Member Functions

 SVSemaphore ()
 Sets up a semaphore. More...
 
void Signal ()
 Signal a semaphore. More...
 
void Wait ()
 Wait on a semaphore. More...
 

Detailed Description

A semaphore class which encapsulates the main signalling and wait abilities of semaphores for windows and unix.

Definition at line 70 of file svutil.h.

Constructor & Destructor Documentation

◆ SVSemaphore()

SVSemaphore::SVSemaphore ( )

Sets up a semaphore.

Definition at line 173 of file svutil.cpp.

173  {
174 #ifdef _WIN32
175  semaphore_ = CreateSemaphore(0, 0, 10, 0);
176 #elif defined(__APPLE__)
177  char name[50];
178  snprintf(name, sizeof(name), "%ld", random());
179  sem_unlink(name);
180  semaphore_ = sem_open(name, O_CREAT , S_IWUSR, 0);
181  if (semaphore_ == SEM_FAILED) {
182  perror("sem_open");
183  }
184 #else
185  sem_init(&semaphore_, 0, 0);
186 #endif
187 }

Member Function Documentation

◆ Signal()

void SVSemaphore::Signal ( )

Signal a semaphore.

Definition at line 189 of file svutil.cpp.

189  {
190 #ifdef _WIN32
191  ReleaseSemaphore(semaphore_, 1, NULL);
192 #elif defined(__APPLE__)
193  sem_post(semaphore_);
194 #else
195  sem_post(&semaphore_);
196 #endif
197 }

◆ Wait()

void SVSemaphore::Wait ( )

Wait on a semaphore.

Definition at line 199 of file svutil.cpp.

199  {
200 #ifdef _WIN32
201  WaitForSingleObject(semaphore_, INFINITE);
202 #elif defined(__APPLE__)
203  sem_wait(semaphore_);
204 #else
205  sem_wait(&semaphore_);
206 #endif
207 }

The documentation for this class was generated from the following files: