aboutsummaryrefslogtreecommitdiff
path: root/src/common/detached_tasks.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/detached_tasks.cpp')
-rw-r--r--src/common/detached_tasks.cpp41
1 files changed, 0 insertions, 41 deletions
diff --git a/src/common/detached_tasks.cpp b/src/common/detached_tasks.cpp
deleted file mode 100644
index f2ed795cc2..0000000000
--- a/src/common/detached_tasks.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-// SPDX-FileCopyrightText: 2018 Citra Emulator Project
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include <thread>
-#include "common/assert.h"
-#include "common/detached_tasks.h"
-
-namespace Common {
-
-DetachedTasks* DetachedTasks::instance = nullptr;
-
-DetachedTasks::DetachedTasks() {
- ASSERT(instance == nullptr);
- instance = this;
-}
-
-void DetachedTasks::WaitForAllTasks() {
- std::unique_lock lock{mutex};
- cv.wait(lock, [this]() { return count == 0; });
-}
-
-DetachedTasks::~DetachedTasks() {
- WaitForAllTasks();
-
- std::unique_lock lock{mutex};
- ASSERT(count == 0);
- instance = nullptr;
-}
-
-void DetachedTasks::AddTask(std::function<void()> task) {
- std::unique_lock lock{instance->mutex};
- ++instance->count;
- std::thread([task_{std::move(task)}]() {
- task_();
- std::unique_lock thread_lock{instance->mutex};
- --instance->count;
- std::notify_all_at_thread_exit(instance->cv, std::move(thread_lock));
- }).detach();
-}
-
-} // namespace Common