diff --git a/libobs/util/threading.h b/libobs/util/threading.h index c37045c56..75e115562 100644 --- a/libobs/util/threading.h +++ b/libobs/util/threading.h @@ -83,7 +83,8 @@ static inline int event_wait(event_t *event) { int code = 0; pthread_mutex_lock(&event->mutex); - if ((code = pthread_cond_wait(&event->cond, &event->mutex)) == 0) { + if (event->signalled || + (code = pthread_cond_wait(&event->cond, &event->mutex)) == 0) { if (!event->manual) event->signalled = false; pthread_mutex_unlock(&event->mutex);