Fix posix event mutex lock bug

The mutex must be unlocked regardless of what the return value is or it
will be locked forever if the return value isn't 0.
This commit is contained in:
jp9000 2014-02-27 18:01:47 -08:00
parent 7f087e95b3
commit cc472d0713

View File

@ -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)