comparison src/core/ngx_shmtx.h @ 860:201d017ea470

slab allocator in shared memory
author Igor Sysoev <igor@sysoev.ru>
date Mon, 20 Nov 2006 08:51:45 +0000
parents 3f8a2132b93d
children 51d0884364fe
comparison
equal deleted inserted replaced
859:d1e8c59a50ee 860:201d017ea470
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