]>
Commit | Line | Data |
---|---|---|
833e3df1 AE |
1 | #ifndef THREAD_COMPAT_H |
2 | #define THREAD_COMPAT_H | |
3 | ||
b361888d JH |
4 | #ifndef NO_PTHREADS |
5 | #include <pthread.h> | |
6 | ||
0ec79358 | 7 | #define HAVE_THREADS 1 |
833e3df1 | 8 | |
0c45d258 JH |
9 | #else |
10 | ||
0ec79358 NTND |
11 | #define HAVE_THREADS 0 |
12 | ||
13 | /* | |
14 | * macros instead of typedefs because pthread definitions may have | |
15 | * been pulled in by some system dependencies even though the user | |
16 | * wants to disable pthread. | |
17 | */ | |
18 | #define pthread_t int | |
19 | #define pthread_mutex_t int | |
20 | #define pthread_cond_t int | |
21 | #define pthread_key_t int | |
22 | ||
23 | #define pthread_mutex_init(mutex, attr) dummy_pthread_init(mutex) | |
24 | #define pthread_mutex_lock(mutex) | |
25 | #define pthread_mutex_unlock(mutex) | |
26 | #define pthread_mutex_destroy(mutex) | |
27 | ||
28 | #define pthread_cond_init(cond, attr) dummy_pthread_init(cond) | |
29 | #define pthread_cond_wait(cond, mutex) | |
30 | #define pthread_cond_signal(cond) | |
31 | #define pthread_cond_broadcast(cond) | |
32 | #define pthread_cond_destroy(cond) | |
33 | ||
34 | #define pthread_key_create(key, attr) dummy_pthread_init(key) | |
35 | #define pthread_key_delete(key) | |
36 | ||
37 | #define pthread_create(thread, attr, fn, data) \ | |
38 | dummy_pthread_create(thread, attr, fn, data) | |
39 | #define pthread_join(thread, retval) \ | |
40 | dummy_pthread_join(thread, retval) | |
41 | ||
42 | #define pthread_setspecific(key, data) | |
43 | #define pthread_getspecific(key) NULL | |
44 | ||
45 | int dummy_pthread_create(pthread_t *pthread, const void *attr, | |
46 | void *(*fn)(void *), void *data); | |
47 | int dummy_pthread_join(pthread_t pthread, void **retval); | |
48 | ||
49 | int dummy_pthread_init(void *); | |
0c45d258 | 50 | |
b361888d | 51 | #endif |
0ec79358 NTND |
52 | |
53 | int online_cpus(void); | |
54 | int init_recursive_mutex(pthread_mutex_t*); | |
55 | ||
56 | ||
833e3df1 | 57 | #endif /* THREAD_COMPAT_H */ |