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>