gatelib  2.1
g_mthread_MutexAbstract.h
1 #pragma once
2 #include "g_mthread_ISyncObject.h"
3 #include "g_mthread_Thread.h"
4 
5 namespace g
6 {
7 namespace mthread
8 {
9 
10 G_EXC_DEFINE_MSG ( ReleasingNotOwnedThreadException , MultithreadException , "Releasing a not owned thread!" );
11 G_EXC_DEFINE_MSG ( MutexAbandonedException , SyncObjectException , "Mutex was abandoned!" );
12 
13 //create an anonimous mutex
14 class G_LIB_ITEM MutexAbstract : public ISyncObject
15 {
16 public:
17  virtual ~MutexAbstract(){}
18 
19  virtual void wait ( ) = 0;
20  virtual bool wait ( GTimeoutSec_t aTimeOutSec ) = 0;
21  virtual bool tryWait ( ) = 0;
22  virtual void release ( ) = 0;
23 
24 protected:
25  MutexAbstract ( ){}
26 };
27 
28 
29 }//namespace mthread
30 }//namespace g
Definition: g_mthread_ISyncObject.h:26
#define G_EXC_DEFINE_MSG(aexctypename, abaseexctypename, amsg)
Definition: g_exception_macros.h:43
Definition: g.mthread.ThreadSimpleEvent.h:5
Definition: g_mthread_MutexAbstract.h:14