comparison src/core/ngx_shmtx.h @ 258:6ae1357b7b7c NGINX_0_4_14

nginx 0.4.14 *) Feature: the "proxy_pass_error_message" directive in IMAP/POP3 proxy. *) Feature: now configure detects system PCRE library on FreeBSD, Linux, and NetBSD. *) Bugfix: ngx_http_perl_module did not work with perl built with the threads support; bug appeared in 0.3.38. *) Bugfix: ngx_http_perl_module did not work if perl was called recursively. *) Bugfix: nginx ignored a host name in an request line. *) Bugfix: a worker process may got caught in an endless loop, if a FastCGI server sent too many data to the stderr. *) Bugfix: the $upstream_response_time variable may be negative if the system time was changed backward. *) Bugfix: the "Auth-Login-Attempt" parameter was not sent to IMAP/POP3 proxy authentication server when POP3 was used. *) Bugfix: a segmentation fault might occur if connect to IMAP/POP3 proxy authentication server failed.
author Igor Sysoev <http://sysoev.ru>
date Mon, 27 Nov 2006 00:00:00 +0300
parents 73e8476f9142
children 052a7b1d40e5
comparison
equal deleted inserted replaced
257:0e566ee1bcd5 258:6ae1357b7b7c
16 #if (NGX_HAVE_ATOMIC_OPS) 16 #if (NGX_HAVE_ATOMIC_OPS)
17 ngx_atomic_t *lock; 17 ngx_atomic_t *lock;
18 #else 18 #else
19 ngx_fd_t fd; 19 ngx_fd_t fd;
20 u_char *name; 20 u_char *name;
21 ngx_log_t *log;
22 #endif 21 #endif
23 } ngx_shmtx_t; 22 } ngx_shmtx_t;
24 23
25 24
26 ngx_int_t ngx_shmtx_create(ngx_shmtx_t *mtx, void *addr, u_char *name, 25 ngx_int_t ngx_shmtx_create(ngx_shmtx_t *mtx, void *addr, u_char *name);
27 ngx_log_t *log);
28 26
29 27
30 #if (NGX_HAVE_ATOMIC_OPS) 28 #if (NGX_HAVE_ATOMIC_OPS)
31 29
32 static ngx_inline ngx_uint_t 30 static ngx_inline ngx_uint_t
61 59
62 if (err == NGX_EAGAIN) { 60 if (err == NGX_EAGAIN) {
63 return 0; 61 return 0;
64 } 62 }
65 63
66 ngx_log_error(NGX_LOG_ALERT, mtx->log, err, ngx_trylock_fd_n " failed"); 64 ngx_log_abort(err, ngx_trylock_fd_n " failed");
67
68 ngx_abort();
69 } 65 }
70 66
71 67
72 static ngx_inline void 68 static ngx_inline void
73 ngx_shmtx_lock(ngx_shmtx_t *mtx) 69 ngx_shmtx_lock(ngx_shmtx_t *mtx)
78 74
79 if (err == 0) { 75 if (err == 0) {
80 return; 76 return;
81 } 77 }
82 78
83 ngx_log_error(NGX_LOG_ALERT, mtx->log, err, ngx_lock_fd_n " failed"); 79 ngx_log_abort(err, ngx_lock_fd_n " failed");
84
85 ngx_abort();
86 } 80 }
87 81
88 82
89 static ngx_inline void 83 static ngx_inline void
90 ngx_shmtx_unlock(ngx_shmtx_t *mtx) 84 ngx_shmtx_unlock(ngx_shmtx_t *mtx)
95 89
96 if (err == 0) { 90 if (err == 0) {
97 return; 91 return;
98 } 92 }
99 93
100 ngx_log_error(NGX_LOG_ALERT, mtx->log, err, ngx_unlock_fd_n " failed"); 94 ngx_log_abort(err, ngx_unlock_fd_n " failed");
101
102 ngx_abort();
103 } 95 }
104 96
105 97
106 void ngx_shmtx_destory(ngx_shmtx_t *mtx); 98 void ngx_shmtx_destory(ngx_shmtx_t *mtx);
107 99