… | |
… | |
30 | #define sigset_t int |
30 | #define sigset_t int |
31 | #define sigfillset(a) |
31 | #define sigfillset(a) |
32 | #define pthread_sigmask(a,b,c) |
32 | #define pthread_sigmask(a,b,c) |
33 | #define sigaddset(a,b) |
33 | #define sigaddset(a,b) |
34 | #define sigemptyset(s) |
34 | #define sigemptyset(s) |
35 | #define sigfillset(s) |
|
|
36 | |
35 | |
37 | typedef pthread_mutex_t xmutex_t; |
36 | typedef pthread_mutex_t xmutex_t; |
38 | #define X_MUTEX_INIT PTHREAD_MUTEX_INITIALIZER |
37 | #define X_MUTEX_INIT PTHREAD_MUTEX_INITIALIZER |
39 | #define X_MUTEX_CREATE(mutex) pthread_mutex_init (&(mutex), 0) |
38 | #define X_MUTEX_CREATE(mutex) pthread_mutex_init (&(mutex), 0) |
40 | #define X_LOCK(mutex) pthread_mutex_lock (&(mutex)) |
39 | #define X_LOCK(mutex) pthread_mutex_lock (&(mutex)) |
… | |
… | |
46 | #define X_COND_SIGNAL(cond) pthread_cond_signal (&(cond)) |
45 | #define X_COND_SIGNAL(cond) pthread_cond_signal (&(cond)) |
47 | #define X_COND_WAIT(cond,mutex) pthread_cond_wait (&(cond), &(mutex)) |
46 | #define X_COND_WAIT(cond,mutex) pthread_cond_wait (&(cond), &(mutex)) |
48 | #define X_COND_TIMEDWAIT(cond,mutex,to) pthread_cond_timedwait (&(cond), &(mutex), &(to)) |
47 | #define X_COND_TIMEDWAIT(cond,mutex,to) pthread_cond_timedwait (&(cond), &(mutex), &(to)) |
49 | |
48 | |
50 | typedef pthread_t xthread_t; |
49 | typedef pthread_t xthread_t; |
51 | #define X_THREAD_PROC(name) void *name (void *thr_arg) |
50 | #define X_THREAD_PROC(name) static void *name (void *thr_arg) |
52 | #define X_THREAD_ATFORK(a,b,c) |
51 | #define X_THREAD_ATFORK(a,b,c) |
53 | |
52 | |
54 | static int |
53 | static int |
55 | thread_create (xthread_t *tid, void *(*proc)(void *), void *arg) |
54 | xthread_create (xthread_t *tid, void *(*proc)(void *), void *arg) |
56 | { |
55 | { |
57 | int retval; |
56 | int retval; |
58 | pthread_attr_t attr; |
57 | pthread_attr_t attr; |
59 | |
58 | |
60 | pthread_attr_init (&attr); |
59 | pthread_attr_init (&attr); |
… | |
… | |
131 | #ifndef X_STACKSIZE |
130 | #ifndef X_STACKSIZE |
132 | # define X_STACKSIZE sizeof (void *) * 4096 |
131 | # define X_STACKSIZE sizeof (void *) * 4096 |
133 | #endif |
132 | #endif |
134 | |
133 | |
135 | static int |
134 | static int |
136 | thread_create (xthread_t *tid, void *(*proc)(void *), void *arg) |
135 | xthread_create (xthread_t *tid, void *(*proc)(void *), void *arg) |
137 | { |
136 | { |
138 | int retval; |
137 | int retval; |
139 | sigset_t fullsigset, oldsigset; |
138 | sigset_t fullsigset, oldsigset; |
140 | pthread_attr_t attr; |
139 | pthread_attr_t attr; |
141 | |
140 | |