Remove incorrect assert from UnixEvent::Wait (#80270)
authorJan Vorlicek <janvorli@microsoft.com>
Fri, 6 Jan 2023 16:02:30 +0000 (17:02 +0100)
committerGitHub <noreply@github.com>
Fri, 6 Jan 2023 16:02:30 +0000 (17:02 +0100)
* Remove incorrect assert from UnixEvent::Wait

There is an incorrect assert checking that when `pthread_cond_timedwait`
timeouts, the event is not set. That assumption is incorrect, according
to the `pthread_cond_timedwait` documentation.

It fired in one of the CI runs recently.

Close #80166

* Fix one more occurence of the same assert

src/coreclr/gc/unix/events.cpp
src/coreclr/nativeaot/Runtime/unix/PalRedhawkUnix.cpp

index d215c76..1a8a588 100644 (file)
@@ -174,8 +174,6 @@ public:
 #else // HAVE_CLOCK_GETTIME_NSEC_NP
                 st = pthread_cond_timedwait(&m_condition, &m_mutex, &endTime);
 #endif // HAVE_CLOCK_GETTIME_NSEC_NP
-                // Verify that if the wait timed out, the event was not set
-                assert((st != ETIMEDOUT) || !m_state);
             }
 
             if (st != 0)
index 7737abb..7bb8991 100644 (file)
@@ -256,8 +256,6 @@ public:
 #else // HAVE_CLOCK_GETTIME_NSEC_NP
                 st = pthread_cond_timedwait(&m_condition, &m_mutex, &endTime);
 #endif // HAVE_CLOCK_GETTIME_NSEC_NP
-                // Verify that if the wait timed out, the event was not set
-                ASSERT((st != ETIMEDOUT) || !m_state);
             }
 
             if (st != 0)