Might as well revert it completely.
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
#include <mutex>
|
||||
#include <thread>
|
||||
#include <condition_variable>
|
||||
#include <atomic>
|
||||
|
||||
#include <86box/plat.h>
|
||||
|
||||
@@ -78,25 +77,25 @@ thread_close_mutex(mutex_t *_mutex)
|
||||
event_t *
|
||||
thread_create_event()
|
||||
{
|
||||
auto event = new event_cpp11_t;
|
||||
return event;
|
||||
auto ev = new event_cpp11_t;
|
||||
return ev;
|
||||
}
|
||||
|
||||
int
|
||||
thread_wait_event(event_t *handle, int timeout)
|
||||
{
|
||||
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) {
|
||||
event->cond.wait(lock, [event] { return (event->state == true); });
|
||||
event->cond.wait(lock, [event] { return event->state; });
|
||||
} else {
|
||||
auto to = std::chrono::system_clock::now() + std::chrono::milliseconds(timeout);
|
||||
std::cv_status status;
|
||||
|
||||
do {
|
||||
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) {
|
||||
return 1;
|
||||
@@ -109,9 +108,10 @@ void
|
||||
thread_set_event(event_t *handle)
|
||||
{
|
||||
auto event = reinterpret_cast<event_cpp11_t*>(handle);
|
||||
std::unique_lock<std::mutex> lock(event->mutex);
|
||||
|
||||
event->state = true;
|
||||
{
|
||||
auto lock = std::unique_lock<std::mutex>(event->mutex);
|
||||
event->state = true;
|
||||
}
|
||||
event->cond.notify_all();
|
||||
}
|
||||
|
||||
@@ -119,8 +119,7 @@ void
|
||||
thread_reset_event(event_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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user