mirror of
https://github.com/moonlight-stream/moonlight-common-c.git
synced 2025-07-01 23:35:58 +00:00
Fix deadlock in POSIX impelementation
This commit is contained in:
parent
fdf366e749
commit
a290613190
@ -43,10 +43,10 @@ int offerQueueItem(PLINKED_BLOCKING_QUEUE queueHead, void* data) {
|
||||
lastEntry->next = entry;
|
||||
}
|
||||
|
||||
PltSetEvent(&queueHead->containsDataEvent);
|
||||
|
||||
PltUnlockMutex(&queueHead->mutex);
|
||||
|
||||
PltSetEvent(&queueHead->containsDataEvent);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -153,10 +153,8 @@ void PltSetEvent(PLT_EVENT *event) {
|
||||
#ifdef _WIN32
|
||||
SetEvent(*event);
|
||||
#else
|
||||
pthread_mutex_lock(&event->mutex);
|
||||
event->signalled = 1;
|
||||
pthread_cond_signal(&event->cond);
|
||||
pthread_mutex_unlock(&event->mutex);
|
||||
pthread_cond_broadcast(&event->cond);
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -164,9 +162,7 @@ void PltClearEvent(PLT_EVENT *event) {
|
||||
#ifdef _WIN32
|
||||
ResetEvent(*event);
|
||||
#else
|
||||
pthread_mutex_lock(&event->mutex);
|
||||
event->signalled = 0;
|
||||
pthread_mutex_unlock(&event->mutex);
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -176,7 +172,7 @@ void PltPulseEvent(PLT_EVENT *event) {
|
||||
#else
|
||||
pthread_mutex_lock(&event->mutex);
|
||||
event->signalled = 1;
|
||||
pthread_cond_signal(&event->cond);
|
||||
pthread_cond_broadcast(&event->cond);
|
||||
event->signalled = 0;
|
||||
pthread_mutex_unlock(&event->mutex);
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user