sem.cc

来自「VRTX 商用嵌入式实时操作系统」· CC 代码 · 共 78 行

CC
78
字号
/***************************************************************************
*
*		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 + =
减小字号Ctrl + -
显示快捷键?