diff --git a/src/coreclr/gc/unix/events.cpp b/src/coreclr/gc/unix/events.cpp index 767b414f04c174..06dc1d9b172018 100644 --- a/src/coreclr/gc/unix/events.cpp +++ b/src/coreclr/gc/unix/events.cpp @@ -220,10 +220,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 af0ba99e4380c3..0d19436d3b84a2 100644 --- a/src/coreclr/nativeaot/Runtime/unix/PalRedhawkUnix.cpp +++ b/src/coreclr/nativeaot/Runtime/unix/PalRedhawkUnix.cpp @@ -316,10 +316,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()