summaryrefslogtreecommitdiffstats
path: root/src/rccmutex.h
blob: 85856216fc8cdf12f526451a5b1365a3c2f45d0f (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
#ifndef _RCC_MUTEX_H
#define _RCC_MUTEX_H

#include "../config.h"

#ifdef HAVE_PTHREAD
# include <pthread.h>
#endif /* HAVE_PTHREAD */

struct rcc_mutex_t {
#ifdef HAVE_PTHREAD
    pthread_mutex_t mutex;
#else
    unsigned char mutex;
#endif /* HAVE_PTHREAD */
};
typedef struct rcc_mutex_t rcc_mutex_s;
typedef struct rcc_mutex_t *rcc_mutex;

rcc_mutex rccMutexCreate();
void rccMutexFree(rcc_mutex mutex);

int rccMutexLock(rcc_mutex mutex);
int rccMutexTryLock(rcc_mutex mutex);
void rccMutexUnLock(rcc_mutex mutex);
 
#endif /* _RCC_MUTEX_H */