diff --git a/libobs/util/threading-posix.c b/libobs/util/threading-posix.c index 4ab53c594..8b15ddd50 100644 --- a/libobs/util/threading-posix.c +++ b/libobs/util/threading-posix.c @@ -109,24 +109,26 @@ int event_timedwait(event_t event, unsigned long milliseconds) if (code == 0) { if (!event->manual) event->signalled = false; - pthread_mutex_unlock(&event->mutex); } + pthread_mutex_unlock(&event->mutex); + return code; } int event_try(event_t event) { + int ret = EAGAIN; + pthread_mutex_lock(&event->mutex); if (event->signalled) { if (!event->manual) event->signalled = false; - pthread_mutex_unlock(&event->mutex); - return 0; + ret = 0; } pthread_mutex_unlock(&event->mutex); - return EAGAIN; + return ret; } int event_signal(event_t event)