//////////////////////////////////////////////////////////////////////////// // CSemaphore クラスのインタフェース宣言 // // Solaris上でセマフォを実装する。 //////////////////////////////////////////////////////////////////////////// #if !defined( SEMAPHORE_H_INCLUDED_ ) #define SEMAPHORE_H_INCLUDED_ #include #include class CSemaphore { public: CSemaphore( int argMaxCount ); ~CSemaphore(); // P操作 void P(); // 待ち合わせる // V操作 void V(); // 解放する // 占有出来るなら占有する bool Try(); // 最大待ち時間を指定して待ち合わせる bool WaitForTime( int ms ); protected: sem_t m_Semaphore; // セマフォ int MaxCount; // セマフォの最大値 }; #endif // SEMAPHORE_H_INCLUDED_