summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/k_thread.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2021-08-14 11:14:19 +0200
committerbunnei <bunneidev@gmail.com>2021-12-07 01:39:17 +0100
commit3dc803a430107fb22ffc91608c613e09ec5c8b51 (patch)
treef8d5a747cf9d89befd89beec16bdc116d2725fe8 /src/core/hle/kernel/k_thread.h
parentcore: hle: kernel: k_thread: Mark KScopedDisableDispatch as nodiscard. (diff)
downloadyuzu-3dc803a430107fb22ffc91608c613e09ec5c8b51.tar
yuzu-3dc803a430107fb22ffc91608c613e09ec5c8b51.tar.gz
yuzu-3dc803a430107fb22ffc91608c613e09ec5c8b51.tar.bz2
yuzu-3dc803a430107fb22ffc91608c613e09ec5c8b51.tar.lz
yuzu-3dc803a430107fb22ffc91608c613e09ec5c8b51.tar.xz
yuzu-3dc803a430107fb22ffc91608c613e09ec5c8b51.tar.zst
yuzu-3dc803a430107fb22ffc91608c613e09ec5c8b51.zip
Diffstat (limited to 'src/core/hle/kernel/k_thread.h')
-rw-r--r--src/core/hle/kernel/k_thread.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/core/hle/kernel/k_thread.h b/src/core/hle/kernel/k_thread.h
index 8bbf66c52..e4c4c877d 100644
--- a/src/core/hle/kernel/k_thread.h
+++ b/src/core/hle/kernel/k_thread.h
@@ -454,8 +454,12 @@ public:
return GetActiveCore() == 3;
}
+ [[nodiscard]] bool IsDispatchTrackingDisabled() const {
+ return is_single_core || IsKernelThread();
+ }
+
[[nodiscard]] s32 GetDisableDispatchCount() const {
- if (IsKernelThread()) {
+ if (IsDispatchTrackingDisabled()) {
// TODO(bunnei): Until kernel threads are emulated, we cannot enable/disable dispatch.
return 1;
}
@@ -464,7 +468,7 @@ public:
}
void DisableDispatch() {
- if (IsKernelThread()) {
+ if (IsDispatchTrackingDisabled()) {
// TODO(bunnei): Until kernel threads are emulated, we cannot enable/disable dispatch.
return;
}
@@ -474,7 +478,7 @@ public:
}
void EnableDispatch() {
- if (IsKernelThread()) {
+ if (IsDispatchTrackingDisabled()) {
// TODO(bunnei): Until kernel threads are emulated, we cannot enable/disable dispatch.
return;
}
@@ -727,6 +731,7 @@ private:
// For emulation
std::shared_ptr<Common::Fiber> host_context{};
+ bool is_single_core{};
// For debugging
std::vector<KSynchronizationObject*> wait_objects_for_debugging;