diff --git a/src/coreclr/gc/unix/events.cpp b/src/coreclr/gc/unix/events.cpp index 1a8a5889ed779f..1a4a2111ea13bc 100644 --- a/src/coreclr/gc/unix/events.cpp +++ b/src/coreclr/gc/unix/events.cpp @@ -213,10 +213,9 @@ class GCEvent::Impl { pthread_mutex_lock(&m_mutex); m_state = true; - pthread_mutex_unlock(&m_mutex); - // Unblock all threads waiting for the condition variable pthread_cond_broadcast(&m_condition); + pthread_mutex_unlock(&m_mutex); } void Reset() diff --git a/src/coreclr/nativeaot/Runtime/unix/PalRedhawkUnix.cpp b/src/coreclr/nativeaot/Runtime/unix/PalRedhawkUnix.cpp index 136be651f4462e..0d0446b5432f9e 100644 --- a/src/coreclr/nativeaot/Runtime/unix/PalRedhawkUnix.cpp +++ b/src/coreclr/nativeaot/Runtime/unix/PalRedhawkUnix.cpp @@ -302,10 +302,9 @@ class UnixEvent { pthread_mutex_lock(&m_mutex); m_state = true; - pthread_mutex_unlock(&m_mutex); - // Unblock all threads waiting for the condition variable pthread_cond_broadcast(&m_condition); + pthread_mutex_unlock(&m_mutex); } void Reset()