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)