tesseract  4.1.1
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::SVSemaphore ( )

Sets up a semaphore.

Definition at line 166 of file svutil.cpp.

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

Member Function Documentation

◆ Signal()

void SVSemaphore::Signal ( )

Signal a semaphore.

Definition at line 182 of file svutil.cpp.

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

◆ Wait()

void SVSemaphore::Wait ( )

Wait on a semaphore.

Definition at line 192 of file svutil.cpp.

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

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