pth_mutexspeed.c revision e739ac0589b4fb43561f801c4faba8c1b89f8680
1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include <stdio.h>
3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include <assert.h>
4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include <pthread.h>
5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)int main ( void )
7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles){
8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)   const int n = 100000;
9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)   int i, r;
10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)   pthread_mutex_t mx = PTHREAD_MUTEX_INITIALIZER;
11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)   printf("begin %d lock--unlocks\n", n);
12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)   for (i = 0; i < n; i++) {
13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      r =  pthread_mutex_lock(&mx);
14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      r |= pthread_mutex_unlock(&mx);
15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      assert(r == 0);
16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)   }
17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)   printf("done  %d lock--unlocks\n", n);
18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)   return 0;
19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)