Linux fixes

This commit is contained in:
Stefan Högler
2022-03-26 16:15:50 +01:00
parent 229ffed964
commit d903f487d4
15 changed files with 87 additions and 80 deletions
+8 -6
View File
@@ -13,18 +13,20 @@ Event::Event(nullptr_t)
Event::Event(const std::string &name, const std::source_location &location)
: name(name)
, location(location)
, eventLock(std::make_unique<std::mutex>())
{
}
Event::Event(const std::source_location &location)
: name(location.function_name())
, location(location)
, eventLock(std::make_unique<std::mutex>())
{
}
void Event::raise()
{
std::scoped_lock lock(eventLock);
std::scoped_lock lock(*eventLock);
data = true;
if(waitingJobs.size() > 0)
{
@@ -37,17 +39,17 @@ void Event::raise()
}
void Event::reset()
{
std::scoped_lock lock(eventLock);
std::scoped_lock lock(*eventLock);
data = false;
}
bool Event::await_ready()
{
eventLock.lock();
eventLock->lock();
bool result = data;
if(result)
{
eventLock.unlock();
eventLock->unlock();
}
return result;
}
@@ -56,14 +58,14 @@ void Event::await_suspend(std::coroutine_handle<JobPromiseBase<false>> h)
{
//h.promise().enqueue(this);
waitingJobs.add(JobBase<false>(&h.promise()));
eventLock.unlock();
eventLock->unlock();
}
void Event::await_suspend(std::coroutine_handle<JobPromiseBase<true>> h)
{
//h.promise().enqueue(this);
waitingMainJobs.add(JobBase<true>(&h.promise()));
eventLock.unlock();
eventLock->unlock();
}
ThreadPool::ThreadPool(uint32 threadCount)