psemaphore.cxx

来自「PTypes (C++ Portable Types Library) is a」· CXX 代码 · 共 72 行

CXX
72
字号
/* * *  C++ Portable Types Library (PTypes) *  Version 1.7.5   Released 9-Mar-2003 * *  Copyright (c) 2001, 2002, 2003 Hovik Melikyan * *  http://www.melikyan.com/ptypes/ *  http://ptypes.sourceforge.net/ * */#ifdef WIN32#  include <windows.h>#else#  include <pthread.h>#endif#include "pasync.h"PTYPES_BEGIN#ifndef __SEM_TO_TIMEDSEM__static void sem_fail(){    fatal(CRIT_FIRST + 41, "Semaphore failed");}semaphore::semaphore(int initvalue) {    if (sem_init(&handle, 0, initvalue) != 0)        sem_fail();}semaphore::~semaphore() {    sem_destroy(&handle);}void semaphore::wait() {    if (sem_wait(&handle) != 0)        sem_fail();}void semaphore::post() {    if (sem_post(&handle) != 0)        sem_fail();}#elseint _psemaphore_dummy_symbol;  // avoid ranlib's warning message#endifPTYPES_END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?