locker.h.svn-base

来自「德国Erlangen大学教学操作系统源码。」· SVN-BASE 代码 · 共 67 行

SVN-BASE
67
字号
/*****************************************************************************//* Betriebssysteme                                                           *//*---------------------------------------------------------------------------*//*                                                                           *//*                               L O C K E R                                 *//*                                                                           *//*---------------------------------------------------------------------------*//* Die Klasse Locker implementiert eine Sperrvariable, die verwendet wird,   *//* um kritische Abschnitte zu schuetzen. Die Variable zeigt allerdings nur   *//* an, ob der kritische Abschnitt frei ist. Ein eventuelles Warten und der   *//* Schutz der fuer diese Klasse notwendigen Zaehlfunktion muss ausserhalb    *//* erfolgen.                                                                 *//*****************************************************************************/#ifndef __Locker_include__#define __Locker_include__#include "machine/cpu.h"extern CPU cpu;class Locker{public:	inline Locker()		: counter(0)	{	}	inline Locker(Locker &locker)	{	}	inline virtual ~Locker()	{	}	inline void enter()	{		cpu.disable_int();		counter++;		cpu.enable_int();	}	inline void retne()	{		cpu.disable_int();		if(counter>0)			counter--;		cpu.enable_int();	}	inline bool avail()	{		return counter==0;	}//private:	int counter;};#endif

⌨️ 快捷键说明

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