blob: 1f1cfb4124b2364f79b0af59091b19b2b3e319d6 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#ifndef LOCK_AND_SIGNAL_H
#define LOCK_AND_SIGNAL_H
class lock_and_signal {
#if defined(__WIN32__)
HANDLE _event;
CRITICAL_SECTION _cs;
#else
pthread_cond_t _cond;
pthread_mutex_t _mutex;
#endif
public:
lock_and_signal();
virtual ~lock_and_signal();
void lock();
void unlock();
void wait();
void timed_wait(size_t timeout_in_ns);
void signal();
void signal_all();
};
#endif /* LOCK_AND_SIGNAL_H */
|