blob: 807f6b84f2bfdde6284971fd9757e9e668f710d5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
#if defined(__WIN32__)
#include <semaphore.h>
class ZCsema
{
public:
ZCsema (void) { init (0, 0); }
~ZCsema (void) { sem_destroy (&_sema); }
ZCsema (const ZCsema&); // disabled
ZCsema& operator= (const ZCsema&); // disabled
int init (int s, int v) { return sem_init (&_sema, s, v); }
int post (void) { return sem_post (&_sema); }
int wait (void) { return sem_wait (&_sema); }
int trywait (void) { return sem_trywait (&_sema); }
private:
sem_t _sema;
};
#define ZCSEMA_IS_IMPLEMENTED
#endif
// ADDED BY DZ TO MAKE IT COMPILE FOR OSX 10.5 or Windows
#if defined(__APPLE__) || defined(__WIN32__)
#include <errno.h>
inline int posix_memalign(void **memptr, size_t alignment, size_t size)
{
*memptr = malloc(size);
if (*memptr == NULL)
return ENOMEM;
return 0;
}
#endif
|