Mercurial > hg > nginx-quic
annotate src/core/ngx_shmtx.h @ 4515:8bb695c05870 stable-1.0
Merge of r4498:
Fix of rbtree lookup on hash collisions.
Previous code incorrectly assumed that nodes with identical keys are linked
together. This might not be true after tree rebalance.
Patch by Lanshun Zhou.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 05 Mar 2012 13:17:56 +0000 |
parents | 4919fb357a5d |
children |
rev | line source |
---|---|
611 | 1 |
2 /* | |
3 * Copyright (C) Igor Sysoev | |
4450
4919fb357a5d
Merge of r4406, r4413: copyrights updated.
Maxim Dounin <mdounin@mdounin.ru>
parents:
3909
diff
changeset
|
4 * Copyright (C) Nginx, Inc. |
611 | 5 */ |
6 | |
7 | |
8 #ifndef _NGX_SHMTX_H_INCLUDED_ | |
9 #define _NGX_SHMTX_H_INCLUDED_ | |
10 | |
11 | |
12 #include <ngx_config.h> | |
13 #include <ngx_core.h> | |
14 | |
15 | |
16 typedef struct { | |
17 #if (NGX_HAVE_ATOMIC_OPS) | |
18 ngx_atomic_t *lock; | |
3909
0daede16d68b
use POSIX semaphores in shmtx instead of sched_yield()
Igor Sysoev <igor@sysoev.ru>
parents:
2563
diff
changeset
|
19 #if (NGX_HAVE_POSIX_SEM) |
0daede16d68b
use POSIX semaphores in shmtx instead of sched_yield()
Igor Sysoev <igor@sysoev.ru>
parents:
2563
diff
changeset
|
20 ngx_uint_t semaphore; |
0daede16d68b
use POSIX semaphores in shmtx instead of sched_yield()
Igor Sysoev <igor@sysoev.ru>
parents:
2563
diff
changeset
|
21 sem_t sem; |
0daede16d68b
use POSIX semaphores in shmtx instead of sched_yield()
Igor Sysoev <igor@sysoev.ru>
parents:
2563
diff
changeset
|
22 #endif |
611 | 23 #else |
24 ngx_fd_t fd; | |
25 u_char *name; | |
26 #endif | |
3909
0daede16d68b
use POSIX semaphores in shmtx instead of sched_yield()
Igor Sysoev <igor@sysoev.ru>
parents:
2563
diff
changeset
|
27 ngx_uint_t spin; |
611 | 28 } ngx_shmtx_t; |
29 | |
30 | |
860
201d017ea470
slab allocator in shared memory
Igor Sysoev <igor@sysoev.ru>
parents:
611
diff
changeset
|
31 ngx_int_t ngx_shmtx_create(ngx_shmtx_t *mtx, void *addr, u_char *name); |
611 | 32 void ngx_shmtx_destory(ngx_shmtx_t *mtx); |
3909
0daede16d68b
use POSIX semaphores in shmtx instead of sched_yield()
Igor Sysoev <igor@sysoev.ru>
parents:
2563
diff
changeset
|
33 ngx_uint_t ngx_shmtx_trylock(ngx_shmtx_t *mtx); |
0daede16d68b
use POSIX semaphores in shmtx instead of sched_yield()
Igor Sysoev <igor@sysoev.ru>
parents:
2563
diff
changeset
|
34 void ngx_shmtx_lock(ngx_shmtx_t *mtx); |
0daede16d68b
use POSIX semaphores in shmtx instead of sched_yield()
Igor Sysoev <igor@sysoev.ru>
parents:
2563
diff
changeset
|
35 void ngx_shmtx_unlock(ngx_shmtx_t *mtx); |
611 | 36 |
37 | |
38 #endif /* _NGX_SHMTX_H_INCLUDED_ */ |