Mercurial > hg > nginx
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 |