From 2ca413983cdf6f712f84af67f4bb5b69a1cddf9d Mon Sep 17 00:00:00 2001 From: Julian Seward Date: Fri, 10 May 2002 21:00:19 +0000 Subject: [PATCH] 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 --- coregrind/vg_scheduler.c | 5 +++++ vg_scheduler.c | 5 +++++ 2 files changed, 10 insertions(+) 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; -- 2.47.2