mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2025-12-24 00:03:11 +01:00
JobPool: Simplify lock guard objects (#25281)
This commit is contained in:
@@ -29,7 +29,7 @@ JobPool::JobPool(size_t maxThreads)
|
|||||||
JobPool::~JobPool()
|
JobPool::~JobPool()
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
unique_lock lock(_mutex);
|
std::lock_guard lock(_mutex);
|
||||||
_shouldStop = true;
|
_shouldStop = true;
|
||||||
}
|
}
|
||||||
_condPending.notify_all();
|
_condPending.notify_all();
|
||||||
@@ -44,7 +44,7 @@ JobPool::~JobPool()
|
|||||||
void JobPool::AddTask(std::function<void()> workFn, std::function<void()> completionFn)
|
void JobPool::AddTask(std::function<void()> workFn, std::function<void()> completionFn)
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
unique_lock lock(_mutex);
|
std::lock_guard lock(_mutex);
|
||||||
_pending.emplace_back(workFn, completionFn);
|
_pending.emplace_back(workFn, completionFn);
|
||||||
}
|
}
|
||||||
_condPending.notify_one();
|
_condPending.notify_one();
|
||||||
@@ -52,7 +52,7 @@ void JobPool::AddTask(std::function<void()> workFn, std::function<void()> comple
|
|||||||
|
|
||||||
void JobPool::Join(std::function<void()> reportFn)
|
void JobPool::Join(std::function<void()> reportFn)
|
||||||
{
|
{
|
||||||
unique_lock lock(_mutex);
|
std::unique_lock lock(_mutex);
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
// Wait for the queue to become empty or having completed tasks.
|
// Wait for the queue to become empty or having completed tasks.
|
||||||
@@ -93,13 +93,13 @@ void JobPool::Join(std::function<void()> reportFn)
|
|||||||
|
|
||||||
bool JobPool::IsBusy()
|
bool JobPool::IsBusy()
|
||||||
{
|
{
|
||||||
unique_lock lock(_mutex);
|
std::lock_guard lock(_mutex);
|
||||||
return _processing != 0 || !_pending.empty();
|
return _processing != 0 || !_pending.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
void JobPool::ProcessQueue()
|
void JobPool::ProcessQueue()
|
||||||
{
|
{
|
||||||
unique_lock lock(_mutex);
|
std::unique_lock lock(_mutex);
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
// Wait for work or cancellation.
|
// Wait for work or cancellation.
|
||||||
|
|||||||
@@ -36,8 +36,6 @@ private:
|
|||||||
std::condition_variable _condComplete;
|
std::condition_variable _condComplete;
|
||||||
std::mutex _mutex;
|
std::mutex _mutex;
|
||||||
|
|
||||||
using unique_lock = std::unique_lock<std::mutex>;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
JobPool(size_t maxThreads = 255);
|
JobPool(size_t maxThreads = 255);
|
||||||
~JobPool();
|
~JobPool();
|
||||||
|
|||||||
Reference in New Issue
Block a user