Blame glib/tests/bitlock.c

Packit ae235b
#include <glib.h>
Packit ae235b
Packit ae235b
#define ITERATIONS 100000000
Packit ae235b
Packit ae235b
static void
Packit ae235b
test_bitlocks (void)
Packit ae235b
{
Packit ae235b
  guint64 start = g_get_monotonic_time ();
Packit ae235b
  gint lock = 0;
Packit ae235b
  gint i;
Packit ae235b
Packit ae235b
  for (i = 0; i < ITERATIONS; i++)
Packit ae235b
    {
Packit ae235b
      g_bit_lock (&lock, 0);
Packit ae235b
      g_bit_unlock (&lock, 0);
Packit ae235b
    }
Packit ae235b
Packit ae235b
  {
Packit ae235b
    gdouble elapsed;
Packit ae235b
    gdouble rate;
Packit ae235b
Packit ae235b
    elapsed = g_get_monotonic_time () - start;
Packit ae235b
    elapsed /= 1000000;
Packit ae235b
    rate = ITERATIONS / elapsed;
Packit ae235b
Packit ae235b
    g_test_maximized_result (rate, "iterations per second");
Packit ae235b
  }
Packit ae235b
}
Packit ae235b
Packit ae235b
int
Packit ae235b
main (int argc, char **argv)
Packit ae235b
{
Packit ae235b
  g_test_init (&argc, &argv, NULL);
Packit ae235b
Packit ae235b
  if (g_test_perf ())
Packit ae235b
    g_test_add_func ("/bitlock/performance/uncontended", test_bitlocks);
Packit ae235b
Packit ae235b
  return g_test_run ();
Packit ae235b
}