comparison src/os/unix/ngx_thread.h @ 370:54f76b0b8dca

nginx-0.0.7-2004-06-27-22:01:57 import
author Igor Sysoev <igor@sysoev.ru>
date Sun, 27 Jun 2004 18:01:57 +0000
parents 4b1a3a4acc60
children 780e93985b93
comparison
equal deleted inserted replaced
369:9c2515d70489 370:54f76b0b8dca
32 typedef volatile struct { 32 typedef volatile struct {
33 ngx_atomic_t lock; 33 ngx_atomic_t lock;
34 ngx_log_t *log; 34 ngx_log_t *log;
35 int semid; 35 int semid;
36 } ngx_mutex_t; 36 } ngx_mutex_t;
37
38
39 typedef struct {
40 ngx_mutex_t mutex;
41 } ngx_cv_t;
37 42
38 43
39 #define ngx_thread_sigmask(how, set, oset) \ 44 #define ngx_thread_sigmask(how, set, oset) \
40 (sigprocmask(how, set, oset) == -1) ? ngx_errno : 0 45 (sigprocmask(how, set, oset) == -1) ? ngx_errno : 0
41 46
100 #define ngx_mutex_lock(m) ngx_mutex_dolock(m, 0) 105 #define ngx_mutex_lock(m) ngx_mutex_dolock(m, 0)
101 ngx_int_t ngx_mutex_dolock(ngx_mutex_t *m, ngx_int_t try); 106 ngx_int_t ngx_mutex_dolock(ngx_mutex_t *m, ngx_int_t try);
102 ngx_int_t ngx_mutex_unlock(ngx_mutex_t *m); 107 ngx_int_t ngx_mutex_unlock(ngx_mutex_t *m);
103 108
104 109
110 ngx_cv_t *ngx_cv_init(ngx_log_t *log);
111 void ngx_cv_done(ngx_cv_t *cv);
112 ngx_int_t ngx_cv_wait(ngx_cv_t *cv);
113 ngx_int_t ngx_cv_signal(ngx_cv_t *cv);
114
115
105 #else /* !NGX_THREADS */ 116 #else /* !NGX_THREADS */
106 117
107 #define ngx_thread_volatile 118 #define ngx_thread_volatile
108 119
109 #define ngx_log_tid 0 120 #define ngx_log_tid 0