33 printf(
"This test requires APR thread support.\n");
43static volatile int counter;
115 printf(
"Trying %s mutexes with mechanism `%s'...\n",
128 printf(
"%s mutexes with mechanism `%s': %s\n",
157 printf(
" mutex mechanism `%s' is %sglobal in scope on this platform.\n",
158 mech_name, counter == 1 ?
"" :
"*NOT* ");
162 fprintf(
stderr,
"\n!!!apr_global_mutex operations are broken on this "
163 "platform for mutex mechanism `%s'!\n"
164 "They don't block out threads within the same process.\n",
170 printf(
" no problem encountered...\n");
205#if APR_HAS_FLOCK_SERIALIZE
208#if APR_HAS_SYSVSEM_SERIALIZE
211#if APR_HAS_POSIXSEM_SERIALIZE
214#if APR_HAS_FCNTL_SERIALIZE
217#if APR_HAS_PROC_PTHREAD_SERIALIZE
APR Miscellaneous library routines.
APR Global Locking Routines.
APR Process Locking Routines.
APR Thread and Process Library.
const char apr_lockmech_e mech
#define apr_pool_create(newpool, parent)
#define apr_time_from_sec(sec)
apr_status_t apr_thread_exit(apr_thread_t *thd, apr_status_t retval)
apr_status_t apr_thread_join(apr_status_t *retval, apr_thread_t *thd)
apr_status_t apr_thread_create(apr_thread_t **new, apr_threadattr_t *attr, apr_thread_start_t func, void *data, apr_pool_t *pool)
static void proc_mutex(abts_case *tc, void *data)