aboutsummaryrefslogtreecommitdiff
path: root/src/common/threadsafe_queue.h
diff options
context:
space:
mode:
authorlizzie <lizzie@eden-emu.dev>2025-10-01 06:59:35 +0200
committercrueter <crueter@eden-emu.dev>2025-10-01 06:59:35 +0200
commitdfe10bc85196d1e7812b6cb775767cf1e072c20f (patch)
tree0c86acd8cc200efe54470a65d3050326684a90bb /src/common/threadsafe_queue.h
parent9a098441def2cfc4281ab1af6b2e8b34200800c0 (diff)
[common] use libc++ provided jthread instead of in-house one (which deadlocks on FBSD 14) (#351)
Needs test on our CI targets to see I didn't miss anything. Worried about android. Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/351 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
Diffstat (limited to 'src/common/threadsafe_queue.h')
-rw-r--r--src/common/threadsafe_queue.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/common/threadsafe_queue.h b/src/common/threadsafe_queue.h
index 2ef1da0644..f9fc0ca171 100644
--- a/src/common/threadsafe_queue.h
+++ b/src/common/threadsafe_queue.h
@@ -1,3 +1,6 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
// SPDX-FileCopyrightText: 2010 Dolphin Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
@@ -99,7 +102,11 @@ public:
T PopWait(std::stop_token stop_token) {
if (Empty()) {
std::unique_lock lock{cv_mutex};
- Common::CondvarWait(cv, lock, stop_token, [this] { return !Empty(); });
+ if constexpr (with_stop_token) {
+ cv.wait(lock, stop_token, [this] { return !Empty(); });
+ } else {
+ cv.wait(lock, [this] { return !Empty(); });
+ }
}
if (stop_token.stop_requested()) {
return T{};