2020-03-04 19:05:54 +00:00
|
|
|
#ifndef cwMutex_H
|
|
|
|
#define cwMutex_H
|
|
|
|
|
|
|
|
namespace cw
|
|
|
|
{
|
|
|
|
namespace mutex
|
|
|
|
{
|
|
|
|
typedef handle<struct mutex_str> handle_t;
|
|
|
|
|
|
|
|
rc_t create( handle_t& h );
|
|
|
|
rc_t destroy( handle_t& h );
|
|
|
|
|
|
|
|
rc_t tryLock( handle_t h, bool& lockFlRef );
|
|
|
|
rc_t lock( handle_t h );
|
|
|
|
rc_t unlock( handle_t h );
|
|
|
|
|
2021-01-20 18:07:36 +00:00
|
|
|
// Set 'lockThenWaitFl' if the function should lock the mutex prior to waiting.
|
|
|
|
// If 'lockThenWaitFl' is false then the function assumes the mutex is already locked
|
|
|
|
// and directly waits. If 'lockThenWaitFl' is set and the mutex is not already locked
|
|
|
|
// then the result is undefined.
|
2020-03-04 19:05:54 +00:00
|
|
|
rc_t waitOnCondVar( handle_t h, bool lockThenWaitFl, unsigned timeOutMs );
|
|
|
|
|
2021-01-20 18:07:36 +00:00
|
|
|
rc_t signalCondVar( handle_t h);
|
2020-03-04 19:05:54 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|