mirror of
https://github.com/moonlight-stream/moonlight-common-c.git
synced 2025-07-02 15:56:02 +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;
|
lastEntry->next = entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
PltSetEvent(&queueHead->containsDataEvent);
|
|
||||||
|
|
||||||
PltUnlockMutex(&queueHead->mutex);
|
PltUnlockMutex(&queueHead->mutex);
|
||||||
|
|
||||||
|
PltSetEvent(&queueHead->containsDataEvent);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,10 +153,8 @@ void PltSetEvent(PLT_EVENT *event) {
|
|||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
SetEvent(*event);
|
SetEvent(*event);
|
||||||
#else
|
#else
|
||||||
pthread_mutex_lock(&event->mutex);
|
|
||||||
event->signalled = 1;
|
event->signalled = 1;
|
||||||
pthread_cond_signal(&event->cond);
|
pthread_cond_broadcast(&event->cond);
|
||||||
pthread_mutex_unlock(&event->mutex);
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -164,9 +162,7 @@ void PltClearEvent(PLT_EVENT *event) {
|
|||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
ResetEvent(*event);
|
ResetEvent(*event);
|
||||||
#else
|
#else
|
||||||
pthread_mutex_lock(&event->mutex);
|
|
||||||
event->signalled = 0;
|
event->signalled = 0;
|
||||||
pthread_mutex_unlock(&event->mutex);
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -176,7 +172,7 @@ void PltPulseEvent(PLT_EVENT *event) {
|
|||||||
#else
|
#else
|
||||||
pthread_mutex_lock(&event->mutex);
|
pthread_mutex_lock(&event->mutex);
|
||||||
event->signalled = 1;
|
event->signalled = 1;
|
||||||
pthread_cond_signal(&event->cond);
|
pthread_cond_broadcast(&event->cond);
|
||||||
event->signalled = 0;
|
event->signalled = 0;
|
||||||
pthread_mutex_unlock(&event->mutex);
|
pthread_mutex_unlock(&event->mutex);
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user