📄 guard.cc.svn-base
字号:
/*****************************************************************************//* Betriebssysteme *//*---------------------------------------------------------------------------*//* *//* G U A R D *//* *//*---------------------------------------------------------------------------*//* Mit Hilfe dieser Klasse koennen Aktivitaeten, die einen kritischen *//* Abschnitt betreffen, der mit einem Guard-Objekt geschuetzt ist, mit *//* Unterbrechungsbehandlungsroutinen synchronisiert werden, die ebenfalls *//* auf den kritischen Abschnitt zugreifen. *//*****************************************************************************/#include "guard/guard.h"#include "guard/gate.h"Guard::Guard() : epilogues(){}Guard::Guard(Guard &guard){}Guard::~Guard(){ leave();}void Guard::leave(){ for(Chain *item = epilogues.dequeue(); item != 0; item = epilogues.dequeue()) { Gate *gate = static_cast<Gate*>(item); gate->queued(false); gate->epilogue(); } retne(); // Chain *item = epilogues.dequeue(); // if(item != 0) // relay(static_cast<Gate*>(item));}void Guard::relay (Gate* item){ if(avail()) { enter(); item->epilogue(); leave(); } else if(!item->queued()) { item->queued(true); epilogues.enqueue(item); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -