1 #include <glib.h>
2 
3 #define ITERATIONS 100000000
4 
5 static void
test_bitlocks(void)6 test_bitlocks (void)
7 {
8   guint64 start = g_get_monotonic_time ();
9   gint lock = 0;
10   gint i;
11 
12   for (i = 0; i < ITERATIONS; i++)
13     {
14       g_bit_lock (&lock, 0);
15       g_bit_unlock (&lock, 0);
16     }
17 
18   {
19     gdouble elapsed;
20     gdouble rate;
21 
22     elapsed = g_get_monotonic_time () - start;
23     elapsed /= 1000000;
24     rate = ITERATIONS / elapsed;
25 
26     g_test_maximized_result (rate, "iterations per second");
27   }
28 }
29 
30 int
main(int argc,char ** argv)31 main (int argc, char **argv)
32 {
33   g_test_init (&argc, &argv, NULL);
34 
35   if (g_test_perf ())
36     g_test_add_func ("/bitlock/performance/uncontended", test_bitlocks);
37 
38   return g_test_run ();
39 }
40