abort ();
}
+
+/* ------------------- Test normal (non-recursive) locks ------------------- */
+
/* Test normal locks by having several bank accounts and several threads
which shuffle around money between the accounts and another thread
checking that all the money is still there. */
return NULL;
}
-void
+static void
test_lock (void)
{
int i;
check_accounts ();
}
+
+/* ----------------- Test read-write (non-recursive) locks ----------------- */
+
/* Test read-write locks by having several bank accounts and several threads
which shuffle around money between the accounts and several other threads
that check that all the money is still there. */
return NULL;
}
-void
+static void
test_rwlock (void)
{
int i;
check_accounts ();
}
+
+/* -------------------------- Test recursive locks -------------------------- */
+
/* Test recursive locks by having several bank accounts and several threads
which shuffle around money between the accounts (recursively) and another
thread checking that all the money is still there. */
return NULL;
}
-void
+static void
test_recursive_lock (void)
{
int i;
check_accounts ();
}
+
+/* ------------------------ Test once-only execution ------------------------ */
+
/* Test once-only execution by having several threads attempt to grab a
once-only task simultaneously (triggered by releasing a read-write lock). */
return NULL;
}
-void
+static void
test_once (void)
{
int i, repeat;
gl_thread_join (threads[i], NULL);
}
+
+/* -------------------------------------------------------------------------- */
+
int
main ()
{