このアーカイブは同期化されません。 mixi の日記が更新されても、このアーカイブには反映されません。
前回もそうだけど、デストラクタなどメンバは一部省略。
// イベント
class Event : public WaitableHandle {
public:
Event(bool manualReset, bool initiallyActive) throw(WindowsException);
virtual void Activate(void) throw(WindowsException);
virtual void Inactivate(void) throw(WindowsException);
virtual void Pulse(void) throw(WindowsException);
};
// 排他制御インタフェース
class IExclusiveProvider {
public:
virtual void Lock(void) = 0;
virtual bool AttemptToLock(void) = 0;
virtual void Unlock(void) = 0;
};
// ロック保持用
class ExclusiveLock {
public:
ExclusiveLock(IExclusiveProvider &provider);
};
// クリティカルセクション
class CriticalSection : public IExclusiveProvider;
// ミューテックス
class Mutex : public WaitableHandle, public IExclusiveProvider;
// セマフォ
class Semaphore : public WaitableHandle, public IExclusiveProvider;