⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 semaphore.cc.svn-base

📁 德国Erlangen大学教学操作系统源码。
💻 SVN-BASE
字号:
/*****************************************************************************//* Betriebssysteme                                                           *//*---------------------------------------------------------------------------*//*                                                                           *//*                           S E M A P H O R E                               *//*                                                                           *//*---------------------------------------------------------------------------*//* Semaphore werden zur Synchronisation von Threads verwendet.               *//*****************************************************************************/#include "meeting/semaphore.h"#include "thread/customer.h"#include "syscall/guarded_organizer.h"extern Guarded_Organizer scheduler;Semaphore::Semaphore(){	_z= 1;}Semaphore::Semaphore(int c){	_z = c;}Semaphore::~Semaphore(){}void Semaphore::p(){	Customer *cust = static_cast<Customer*>(scheduler.Scheduler::active());	if(_z==0) {		enqueue(cust);		scheduler.Organizer::block(*cust, *this);	} else		_z--;}void Semaphore::v(){	_z++;	if (_z == 1) {		Customer *cust = static_cast<Customer*>(dequeue());		if (cust!=NULL) {			_z--;			scheduler.Organizer::wakeup(*cust);		}	}}void Semaphore::wait(){	p(); }void Semaphore::signal(){	v(); }

⌨️ 快捷键说明

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