tesseract  4.1.0
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 signaling and wait abilities of semaphores for windows and unix.

Definition at line 48 of file svutil.h.

Constructor & Destructor Documentation

SVSemaphore::SVSemaphore ( )

Sets up a semaphore.

Definition at line 165 of file svutil.cpp.

165  {
166 #ifdef _WIN32
167  semaphore_ = CreateSemaphore(0, 0, 10, 0);
168 #elif defined(__APPLE__)
169  char name[50];
170  snprintf(name, sizeof(name), "%ld", random());
171  sem_unlink(name);
172  semaphore_ = sem_open(name, O_CREAT , S_IWUSR, 0);
173  if (semaphore_ == SEM_FAILED) {
174  perror("sem_open");
175  }
176 #else
177  sem_init(&semaphore_, 0, 0);
178 #endif
179 }

Member Function Documentation

void SVSemaphore::Signal ( )

Signal a semaphore.

Definition at line 181 of file svutil.cpp.

181  {
182 #ifdef _WIN32
183  ReleaseSemaphore(semaphore_, 1, nullptr);
184 #elif defined(__APPLE__)
185  sem_post(semaphore_);
186 #else
187  sem_post(&semaphore_);
188 #endif
189 }
void SVSemaphore::Wait ( )

Wait on a semaphore.

Definition at line 191 of file svutil.cpp.

191  {
192 #ifdef _WIN32
193  WaitForSingleObject(semaphore_, INFINITE);
194 #elif defined(__APPLE__)
195  sem_wait(semaphore_);
196 #else
197  sem_wait(&semaphore_);
198 #endif
199 }

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