Mercurial > hg > nginx
diff src/os/unix/ngx_process_cycle.c @ 381:02a511569afb
nginx-0.0.7-2004-07-07-19:01:00 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 07 Jul 2004 15:01:00 +0000 |
parents | 5ce6561246a5 |
children | 449c4885dcd1 |
line wrap: on
line diff
--- a/src/os/unix/ngx_process_cycle.c +++ b/src/os/unix/ngx_process_cycle.c @@ -526,6 +526,7 @@ static void ngx_master_exit(ngx_cycle_t static void ngx_worker_process_cycle(ngx_cycle_t *cycle, void *data) { sigset_t set; + ngx_err_t err; ngx_int_t n; ngx_uint_t i; ngx_listening_t *ls; @@ -637,6 +638,14 @@ static void ngx_worker_process_cycle(ngx exit(2); } + err = ngx_thread_key_create(&ngx_core_tls_key); + if (err != 0) { + ngx_log_error(NGX_LOG_ALERT, cycle->log, err, + ngx_thread_key_create_n " failed"); + /* fatal */ + exit(2); + } + for (n = 0; n < ngx_threads_n; n++) { if (!(ngx_threads[n].cv = ngx_cond_init(cycle->log))) { @@ -829,7 +838,7 @@ static void* ngx_worker_thread_cycle(voi sigset_t set; ngx_err_t err; - ngx_tls_t *tls; + ngx_core_tls_t *tls; ngx_cycle_t *cycle; struct timeval tv; @@ -854,19 +863,17 @@ static void* ngx_worker_thread_cycle(voi ngx_setthrtitle("worker thread"); - if (!(tls = ngx_calloc(sizeof(ngx_tls_t), cycle->log))) { + if (!(tls = ngx_calloc(sizeof(ngx_core_tls_t), cycle->log))) { return (void *) 1; } - err = ngx_thread_create_tls(); + err = ngx_thread_set_tls(ngx_core_tls_key, tls); if (err != 0) { ngx_log_error(NGX_LOG_ALERT, cycle->log, err, - ngx_thread_create_tls_n " failed"); + ngx_thread_set_tls_n " failed"); return (void *) 1; } - ngx_thread_set_tls(tls); - if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) { return (void *) 1; } @@ -883,7 +890,7 @@ static void* ngx_worker_thread_cycle(voi ngx_mutex_unlock(ngx_posted_events_mutex); - ngx_log_debug1(NGX_LOG_DEBUG_CORE, cycle->log, ngx_errno, + ngx_log_debug1(NGX_LOG_DEBUG_CORE, cycle->log, 0, "thread %d is done", ngx_thread_self()); return (void *) 0; @@ -899,8 +906,10 @@ static void* ngx_worker_thread_cycle(voi return (void *) 1; } - if (ngx_process_changes(cycle, 1) == NGX_ERROR) { - return (void *) 1; + if (ngx_process_changes) { + if (ngx_process_changes(cycle, 1) == NGX_ERROR) { + return (void *) 1; + } } } }