]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Support _m_kind == PTHREAD_MUTEX_FAST_NP for mutexes. This was stopping
authorJulian Seward <jseward@acm.org>
Fri, 10 May 2002 21:00:19 +0000 (21:00 +0000)
committerJulian Seward <jseward@acm.org>
Fri, 10 May 2002 21:00:19 +0000 (21:00 +0000)
mutexes working properly on Red Hat 6.2.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@255

coregrind/vg_scheduler.c
vg_scheduler.c

index 4109187c2bb652b93453178f5b5818bf9ee35506..54dc30b8ff26342d221a6717abcd25ab1e585695 100644 (file)
@@ -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;
index 4109187c2bb652b93453178f5b5818bf9ee35506..54dc30b8ff26342d221a6717abcd25ab1e585695 100644 (file)
@@ -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;