]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Helgrind: Fixes for ETIMEDOUT
authorPaul Floyd <pjfloyd@wanadoo.fr>
Wed, 9 Apr 2025 06:49:52 +0000 (08:49 +0200)
committerPaul Floyd <pjfloyd@wanadoo.fr>
Wed, 9 Apr 2025 06:49:52 +0000 (08:49 +0200)
pthread_rwlock_timedrdlock and pthread_rwlock_clockrdlock were
generating API errors if they timed out. This fixes that and
only generates API errors for non-zero and non-ETIMEDOUT
return codes.

helgrind/hg_intercepts.c

index d41cb66048f1754d363eddb65492970c6884cbf9..e639abca843c892d5f1a02b4141a826dcae5c6cc 100644 (file)
@@ -2781,8 +2781,10 @@ static int pthread_rwlock_timedrdlock_WRK(pthread_rwlock_t *rwlock,
    DO_CREQ_v_WWW(_VG_USERREQ__HG_PTHREAD_RWLOCK_LOCK_POST,
                  pthread_rwlock_t *, rwlock, long, 0/*isW*/,
                  long, (ret == 0) ? True : False);
+
    if (ret != 0) {
-      DO_PthAPIerror("pthread_rwlock_timedrdlock", ret);
+      if (ret != ETIMEDOUT)
+         DO_PthAPIerror("pthread_rwlock_timedrdlock", ret);
    }
 
    if (TRACE_PTH_FNS) {
@@ -2847,8 +2849,10 @@ static int pthread_rwlock_clockrdlock_WRK(pthread_rwlock_t *rwlock,
                     pthread_rwlock_t *, rwlock, long, 0/*isW*/,
                    long, (ret == 0) ? True : False);
    }
+
    if (ret != 0) {
-      DO_PthAPIerror("pthread_rwlock_clockrdlock", ret);
+      if (ret != ETIMEDOUT)
+         DO_PthAPIerror("pthread_rwlock_clockrdlock", ret);
    }
 
    if (TRACE_PTH_FNS) {