From: Julian Seward Date: Fri, 10 May 2002 21:00:19 +0000 (+0000) Subject: Support _m_kind == PTHREAD_MUTEX_FAST_NP for mutexes. This was stopping X-Git-Tag: svn/VALGRIND_1_0_3~209 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2ca413983cdf6f712f84af67f4bb5b69a1cddf9d;p=thirdparty%2Fvalgrind.git Support _m_kind == PTHREAD_MUTEX_FAST_NP for mutexes. This was stopping mutexes working properly on Red Hat 6.2. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@255 --- diff --git a/coregrind/vg_scheduler.c b/coregrind/vg_scheduler.c index 4109187c2b..54dc30b8ff 100644 --- a/coregrind/vg_scheduler.c +++ b/coregrind/vg_scheduler.c @@ -1911,6 +1911,7 @@ void do_pthread_mutex_lock( ThreadId tid, /* POSIX doesn't mandate this, but for sanity ... */ if (mutex == NULL) { + /* VG_(printf)("NULL mutex\n"); */ SET_EDX(tid, EINVAL); return; } @@ -1921,11 +1922,13 @@ void do_pthread_mutex_lock( ThreadId tid, case PTHREAD_MUTEX_TIMED_NP: case PTHREAD_MUTEX_ADAPTIVE_NP: # endif + case PTHREAD_MUTEX_FAST_NP: case PTHREAD_MUTEX_RECURSIVE_NP: case PTHREAD_MUTEX_ERRORCHECK_NP: if (mutex->__m_count >= 0) break; /* else fall thru */ default: + /* VG_(printf)("unknown __m_kind %d in mutex\n", mutex->__m_kind); */ SET_EDX(tid, EINVAL); return; } @@ -2013,6 +2016,7 @@ void do_pthread_mutex_unlock ( ThreadId tid, case PTHREAD_MUTEX_TIMED_NP: case PTHREAD_MUTEX_ADAPTIVE_NP: # endif + case PTHREAD_MUTEX_FAST_NP: case PTHREAD_MUTEX_RECURSIVE_NP: case PTHREAD_MUTEX_ERRORCHECK_NP: if (mutex->__m_count >= 0) break; @@ -2230,6 +2234,7 @@ void do_pthread_cond_wait ( ThreadId tid, case PTHREAD_MUTEX_TIMED_NP: case PTHREAD_MUTEX_ADAPTIVE_NP: # endif + case PTHREAD_MUTEX_FAST_NP: case PTHREAD_MUTEX_RECURSIVE_NP: case PTHREAD_MUTEX_ERRORCHECK_NP: if (mutex->__m_count >= 0) break; diff --git a/vg_scheduler.c b/vg_scheduler.c index 4109187c2b..54dc30b8ff 100644 --- a/vg_scheduler.c +++ b/vg_scheduler.c @@ -1911,6 +1911,7 @@ void do_pthread_mutex_lock( ThreadId tid, /* POSIX doesn't mandate this, but for sanity ... */ if (mutex == NULL) { + /* VG_(printf)("NULL mutex\n"); */ SET_EDX(tid, EINVAL); return; } @@ -1921,11 +1922,13 @@ void do_pthread_mutex_lock( ThreadId tid, case PTHREAD_MUTEX_TIMED_NP: case PTHREAD_MUTEX_ADAPTIVE_NP: # endif + case PTHREAD_MUTEX_FAST_NP: case PTHREAD_MUTEX_RECURSIVE_NP: case PTHREAD_MUTEX_ERRORCHECK_NP: if (mutex->__m_count >= 0) break; /* else fall thru */ default: + /* VG_(printf)("unknown __m_kind %d in mutex\n", mutex->__m_kind); */ SET_EDX(tid, EINVAL); return; } @@ -2013,6 +2016,7 @@ void do_pthread_mutex_unlock ( ThreadId tid, case PTHREAD_MUTEX_TIMED_NP: case PTHREAD_MUTEX_ADAPTIVE_NP: # endif + case PTHREAD_MUTEX_FAST_NP: case PTHREAD_MUTEX_RECURSIVE_NP: case PTHREAD_MUTEX_ERRORCHECK_NP: if (mutex->__m_count >= 0) break; @@ -2230,6 +2234,7 @@ void do_pthread_cond_wait ( ThreadId tid, case PTHREAD_MUTEX_TIMED_NP: case PTHREAD_MUTEX_ADAPTIVE_NP: # endif + case PTHREAD_MUTEX_FAST_NP: case PTHREAD_MUTEX_RECURSIVE_NP: case PTHREAD_MUTEX_ERRORCHECK_NP: if (mutex->__m_count >= 0) break;