From 4f396c438ba3f56dd3a99aee58f99260333b9b77 Mon Sep 17 00:00:00 2001 From: Rich Prohaska Date: Tue, 26 Aug 2008 18:57:34 +0000 Subject: [PATCH] measure the times of errorcheck mutexes git-svn-id: file:///svn/tokudb@5856 c7de825b-a66e-492c-adef-691d508d4ae1 --- newbrt/locking-benchmarks/pthread-locks.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/newbrt/locking-benchmarks/pthread-locks.c b/newbrt/locking-benchmarks/pthread-locks.c index 51f0d981176..4cb47ba1efc 100644 --- a/newbrt/locking-benchmarks/pthread-locks.c +++ b/newbrt/locking-benchmarks/pthread-locks.c @@ -7,6 +7,7 @@ #include #include #include +#include float tdiff (struct timeval *start, struct timeval *end) { return 1e6*(end->tv_sec-start->tv_sec) +(end->tv_usec - start->tv_usec); @@ -129,8 +130,17 @@ int ivals[K]; }) int main (int argc __attribute__((__unused__)), char *argv[] __attribute__((__unused__))) { + printf("sizeof (pthread_mutex_t) %lu\n", sizeof (pthread_mutex_t)); printf("sizeof (pthread_cond_t) %lu\n", sizeof (pthread_cond_t)); + + TIME("pthread_mutex_lock_errorcheck", i, + ({ int r; pthread_mutexattr_t mattr; + r = pthread_mutexattr_init(&mattr); assert(r == 0); + r = pthread_mutexattr_settype(&mattr, PTHREAD_MUTEX_ERRORCHECK_NP); assert(r == 0); + r = pthread_mutex_init(&mlocks[i], &mattr); assert(r==0); + r = pthread_mutexattr_destroy(&mattr); assert(r == 0); }), + ({ int r = pthread_mutex_lock(&mlocks[i]); assert(r==0); })); TIME("pthread_mutex_lock", i, ({ int r = pthread_mutex_init(&mlocks[i], NULL); assert(r==0); }), ({ int r = pthread_mutex_lock(&mlocks[i]); assert(r==0); }));