Apache HTTPD
framework
httpd-2.4.62
srclib
apr
test
globalmutexchild.c
Go to the documentation of this file.
1
/* Licensed to the Apache Software Foundation (ASF) under one or more
2
* contributor license agreements. See the NOTICE file distributed with
3
* this work for additional information regarding copyright ownership.
4
* The ASF licenses this file to You under the Apache License, Version 2.0
5
* (the "License"); you may not use this file except in compliance with
6
* the License. You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
16
17
#include "
testglobalmutex.h
"
18
#include "
apr_pools.h
"
19
#include "
apr_file_io.h
"
20
#include "
apr_general.h
"
21
#include "
apr_global_mutex.h
"
22
#include "
apr_strings.h
"
23
#include "apr.h"
24
25
#if APR_HAVE_STDLIB_H
26
#include <stdlib.h>
27
#endif
28
29
30
int
main
(
int
argc
,
const
char
*
const
argv
[])
31
{
32
apr_pool_t
*
p
;
33
int
i
= 0;
34
apr_lockmech_e
mech
;
35
apr_global_mutex_t
*global_lock;
36
apr_status_t
rv;
37
38
apr_initialize
();
39
atexit
(
apr_terminate
);
40
41
apr_pool_create
(&
p
,
NULL
);
42
if
(
argc
>= 2) {
43
mech
= (
apr_lockmech_e
)
apr_strtoi64
(
argv
[1],
NULL
, 0);
44
}
45
else
{
46
mech
=
APR_LOCK_DEFAULT
;
47
}
48
rv =
apr_global_mutex_create
(&global_lock,
LOCKNAME
,
mech
,
p
);
49
if
(rv !=
APR_SUCCESS
) {
50
exit
(-rv);
51
}
52
apr_global_mutex_child_init
(&global_lock,
LOCKNAME
,
p
);
53
54
while
(1) {
55
apr_global_mutex_lock
(global_lock);
56
if
(
i
==
MAX_ITER
) {
57
apr_global_mutex_unlock
(global_lock);
58
exit
(
i
);
59
}
60
i
++;
61
apr_global_mutex_unlock
(global_lock);
62
}
63
exit
(0);
64
}
apr_file_io.h
APR File I/O Handling.
apr_general.h
APR Miscellaneous library routines.
apr_global_mutex.h
APR Global Locking Routines.
apr_pools.h
APR memory allocation.
apr_strings.h
APR Strings library.
mech
const char apr_lockmech_e mech
Definition
apr_global_mutex.h:78
size
apr_size_t size
Definition
apr_allocator.h:115
APR_SUCCESS
#define APR_SUCCESS
Definition
apr_errno.h:225
apr_status_t
int apr_status_t
Definition
apr_errno.h:44
argc
apr_pool_t int argc
Definition
apr_getopt.h:104
apr_pool_create
#define apr_pool_create(newpool, parent)
Definition
apr_pools.h:322
apr_lockmech_e
apr_lockmech_e
Definition
apr_proc_mutex.h:46
APR_LOCK_DEFAULT
@ APR_LOCK_DEFAULT
Definition
apr_proc_mutex.h:52
p
apr_pool_t * p
Definition
md_event.c:32
argv
const char * argv[3]
Definition
mod_mime_magic.c:2049
NULL
return NULL
Definition
mod_so.c:359
i
int i
Definition
mod_so.c:347
main
int main(void)
Definition
occhild.c:9
apr_global_mutex_t
Definition
apr_arch_global_mutex.h:23
apr_pool_t
Definition
apr_pools.c:562
testglobalmutex.h
LOCKNAME
#define LOCKNAME
Definition
testglobalmutex.h:24
MAX_ITER
#define MAX_ITER
Definition
testglobalmutex.h:21
Generated by
1.9.8