Might as well revert it completely.

This commit is contained in:
OBattler
2021-12-17 19:15:40 +01:00
parent ea88934c21
commit 64c38701c6

View File

@@ -1,7 +1,6 @@
#include <mutex> #include <mutex>
#include <thread> #include <thread>
#include <condition_variable> #include <condition_variable>
#include <atomic>
#include <86box/plat.h> #include <86box/plat.h>
@@ -78,25 +77,25 @@ thread_close_mutex(mutex_t *_mutex)
event_t * event_t *
thread_create_event() thread_create_event()
{ {
auto event = new event_cpp11_t; auto ev = new event_cpp11_t;
return event; return ev;
} }
int int
thread_wait_event(event_t *handle, int timeout) thread_wait_event(event_t *handle, int timeout)
{ {
auto event = reinterpret_cast<event_cpp11_t*>(handle); auto event = reinterpret_cast<event_cpp11_t*>(handle);
std::unique_lock<std::mutex> lock(event->mutex); auto lock = std::unique_lock<std::mutex>(event->mutex);
if (timeout < 0) { if (timeout < 0) {
event->cond.wait(lock, [event] { return (event->state == true); }); event->cond.wait(lock, [event] { return event->state; });
} else { } else {
auto to = std::chrono::system_clock::now() + std::chrono::milliseconds(timeout); auto to = std::chrono::system_clock::now() + std::chrono::milliseconds(timeout);
std::cv_status status; std::cv_status status;
do { do {
status = event->cond.wait_until(lock, to); status = event->cond.wait_until(lock, to);
} while ((status != std::cv_status::timeout) && (event->state == false)); } while ((status != std::cv_status::timeout) && !event->state);
if (status == std::cv_status::timeout) { if (status == std::cv_status::timeout) {
return 1; return 1;
@@ -109,9 +108,10 @@ void
thread_set_event(event_t *handle) thread_set_event(event_t *handle)
{ {
auto event = reinterpret_cast<event_cpp11_t*>(handle); auto event = reinterpret_cast<event_cpp11_t*>(handle);
std::unique_lock<std::mutex> lock(event->mutex); {
auto lock = std::unique_lock<std::mutex>(event->mutex);
event->state = true; event->state = true;
}
event->cond.notify_all(); event->cond.notify_all();
} }
@@ -119,8 +119,7 @@ void
thread_reset_event(event_t *handle) thread_reset_event(event_t *handle)
{ {
auto event = reinterpret_cast<event_cpp11_t*>(handle); auto event = reinterpret_cast<event_cpp11_t*>(handle);
std::unique_lock<std::mutex> lock(event->mutex); auto lock = std::unique_lock<std::mutex>(event->mutex);
event->state = false; event->state = false;
} }