33#define MAX_COUNTER (MAX_ITER * CHILDREN)
34#define MAX_WAIT_USEC (1000*1000)
37static volatile int *x;
122 ABTS_ASSERT(tc,
"child did not terminate with success",
152 ABTS_ASSERT(tc,
"Default timed trylock not implemented",
159 for (
n = 0;
n < 2;
n++) {
183 ABTS_ASSERT(tc,
"Locks don't appear to work with trylock",
187#if APR_HAS_TIMEDLOCKS
191 ABTS_ASSERT(tc,
"Default timed timedlock not implemented",
197 for (
n = 0;
n < 2;
n++) {
221 ABTS_ASSERT(tc,
"Locks don't appear to work with timedlock",
230 const char *
shmname =
"tpm.shm";
255#if APR_HAS_FLOCK_SERIALIZE
258#if APR_HAS_SYSVSEM_SERIALIZE
261#if APR_HAS_POSIXSEM_SERIALIZE
264#if APR_HAS_FCNTL_SERIALIZE
267#if APR_HAS_PROC_PTHREAD_SERIALIZE
void abts_run_test(abts_suite *ts, test_func f, void *value)
#define ABTS_NOT_IMPL(a, b)
#define ABTS_ASSERT(a, b, c)
#define APR_ASSERT_SUCCESS(tc, ctxt, rv)
APR Miscellaneous library routines.
APR Command Arguments (getopt)
APR Process Locking Routines.
APR Shared Memory Routines.
APR Thread and Process Library.
static int make_child(server_rec *s, int slot, int bucket)
const char apr_lockmech_e mech
#define APR_STATUS_IS_TIMEUP(s)
#define APR_STATUS_IS_EBUSY(s)
apr_interval_time_t apr_int32_t * num
#define apr_pcalloc(p, size)
static void test_exclusive(abts_case *tc, void *data)
static void proc_mutex(abts_case *tc, void *data)
abts_suite * testprocmutex(abts_suite *suite)