00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef FLC_BATON_H
00017 #define FLC_BATON_H
00018
00019 #include <falcon/setup.h>
00020 #include <falcon/basealloc.h>
00021
00022 namespace Falcon {
00023
00035 class FALCON_DYN_CLASS Baton: public BaseAlloc
00036 {
00037 void *m_data;
00038
00039 public:
00040 Baton( bool bBusy = false );
00041 virtual ~Baton();
00042
00052 virtual void acquire();
00053
00065 bool tryAcquire();
00066
00070 virtual void release();
00071
00077 void checkBlock();
00078
00091 bool block();
00092
00103 bool unblock();
00104
00108 bool busy();
00109
00113 virtual void onBlockedAcquire();
00114
00115 };
00116
00117 }
00118
00119 #endif
00120
00121