📄 sem.cc
字号:
/***************************************************************************
*
* Copyright (c) 1993 READY SYSTEMS CORPORATION.
*
* All rights reserved. READY SYSTEMS' source code is an unpublished
* work and the use of a copyright notice does not imply otherwise.
* This source code contains confidential, trade secret material of
* READY SYSTEMS. Any attempt or participation in deciphering, decoding,
* reverse engineering or in any way altering the source code is
* strictly prohibited, unless the prior written consent of
* READY SYSTEMS is obtained.
*
*
* Module Name: semaphore.cc
*
* Identification: @(#) 1.7 semaphore.cc
*
* Date: 6/29/93 10:33:06
*
****************************************************************************
*/
#include "sem.h"
Semaphore::Semaphore ()
{
int err;
sid = sc_screate (1, VRTX_PEND_ORDER_FIFO, &err);
}
Semaphore::Semaphore (int count, int pend_order)
{
int err;
sid = sc_screate (count, pend_order, &err);
}
Semaphore::~Semaphore ()
{
int err;
sc_sdelete (sid, 1, &err);
}
int
Semaphore::pend (unsigned long timeout)
{
int err;
sc_spend (sid, timeout, &err);
return err == RET_OK;
}
void
Semaphore::post ()
{
int err;
sc_spost (sid, &err);
}
int
Semaphore::accept ()
{
int err;
sc_saccept (sid, &err);
return err == RET_OK;
}
int
Semaphore::count ()
{
int err;
return sc_sinquiry (sid, &err);
}
int
Semaphore::id ()
{
return sid;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -