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