summaryrefslogtreecommitdiff
path: root/lib/zita-convolver-4.0.0/zcsema-osx-win-compat.h
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