Mercurial > hg > nginx
comparison src/os/unix/ngx_thread.h @ 266:5238e93961a1
nginx-0.0.2-2004-02-23-23:57:12 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 23 Feb 2004 20:57:12 +0000 |
parents | |
children | 83205e0b5522 |
comparison
equal
deleted
inserted
replaced
265:6468241715e6 | 266:5238e93961a1 |
---|---|
1 #ifndef _NGX_THREAD_H_INCLUDED_ | |
2 #define _NGX_THREAD_H_INCLUDED_ | |
3 | |
4 | |
5 #include <ngx_config.h> | |
6 #include <ngx_core.h> | |
7 | |
8 #if (NGX_THREADS) | |
9 | |
10 #if (USE_RFORK) | |
11 | |
12 #include <sys/ipc.h> | |
13 #include <sys/sem.h> | |
14 #include <sched.h> | |
15 | |
16 typedef pid_t ngx_tid_t; | |
17 | |
18 #define TID_T_FMT PID_T_FMT | |
19 | |
20 #define ngx_log_tid 0 | |
21 | |
22 #undef ngx_log_pid | |
23 #define ngx_log_pid ngx_thread_self() | |
24 | |
25 | |
26 #define NGX_MUTEX_LIGHT 1 | |
27 #define NGX_MUTEX_CV 2 | |
28 | |
29 #define NGX_MUTEX_LOCK_BUSY 0x80000000 | |
30 | |
31 typedef struct { | |
32 ngx_atomic_t lock; | |
33 ngx_log_t *log; | |
34 int semid; | |
35 } ngx_mutex_t; | |
36 | |
37 | |
38 #else /* use pthreads */ | |
39 | |
40 #include <pthread.h> | |
41 | |
42 typedef pthread_t ngx_tid_t; | |
43 | |
44 #define ngx_log_tid ngx_thread_self() | |
45 | |
46 #endif | |
47 | |
48 | |
49 ngx_int_t ngx_init_threads(int n, size_t size, ngx_log_t *log); | |
50 int ngx_create_thread(ngx_tid_t *tid, int (*func)(void *arg), void *arg, | |
51 ngx_log_t *log); | |
52 ngx_tid_t ngx_thread_self(); | |
53 | |
54 ngx_mutex_t *ngx_mutex_init(ngx_log_t *log, uint flags); | |
55 void ngx_mutex_done(ngx_mutex_t *m); | |
56 | |
57 #define ngx_mutex_trylock(m) ngx_mutex_do_lock(m, 1) | |
58 #define ngx_mutex_lock(m) ngx_mutex_do_lock(m, 0) | |
59 ngx_int_t ngx_mutex_do_lock(ngx_mutex_t *m, ngx_int_t try); | |
60 ngx_int_t ngx_mutex_unlock(ngx_mutex_t *m); | |
61 | |
62 | |
63 #else /* !NGX_THREADS */ | |
64 | |
65 #define ngx_log_tid 0 | |
66 #define TID_T_FMT "%d" | |
67 | |
68 #define ngx_mutex_lock(m) | |
69 #define ngx_mutex_unlock(m) | |
70 | |
71 #endif | |
72 | |
73 | |
74 #endif /* _NGX_THREAD_H_INCLUDED_ */ |