Groonga 3.0.9 Source Code Document
Main Page
Related Pages
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
groonga
vendor
nginx-1.4.2
src
core
ngx_shmtx.h
Go to the documentation of this file.
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_ */
Generated on Sun Nov 10 2013 09:49:07 for Groonga 3.0.9 Source Code Document by
1.8.1.2