Annotation of embedaddon/nginx/src/core/ngx_shmtx.h, revision 1.1.1.1
1.1 misho 1:
2: /*
3: * Copyright (C) Igor Sysoev
4: * Copyright (C) Nginx, Inc.
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: ngx_atomic_t lock;
18: #if (NGX_HAVE_POSIX_SEM)
19: ngx_atomic_t wait;
20: #endif
21: } ngx_shmtx_sh_t;
22:
23:
24: typedef struct {
25: #if (NGX_HAVE_ATOMIC_OPS)
26: ngx_atomic_t *lock;
27: #if (NGX_HAVE_POSIX_SEM)
28: ngx_atomic_t *wait;
29: ngx_uint_t semaphore;
30: sem_t sem;
31: #endif
32: #else
33: ngx_fd_t fd;
34: u_char *name;
35: #endif
36: ngx_uint_t spin;
37: } ngx_shmtx_t;
38:
39:
40: ngx_int_t ngx_shmtx_create(ngx_shmtx_t *mtx, ngx_shmtx_sh_t *addr,
41: u_char *name);
42: void ngx_shmtx_destroy(ngx_shmtx_t *mtx);
43: ngx_uint_t ngx_shmtx_trylock(ngx_shmtx_t *mtx);
44: void ngx_shmtx_lock(ngx_shmtx_t *mtx);
45: void ngx_shmtx_unlock(ngx_shmtx_t *mtx);
46: ngx_uint_t ngx_shmtx_force_unlock(ngx_shmtx_t *mtx, ngx_pid_t pid);
47:
48:
49: #endif /* _NGX_SHMTX_H_INCLUDED_ */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>