diff options
author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2020-03-07 17:44:35 +0100 |
---|---|---|
committer | Fernando Sahmkow <fsahmkow27@gmail.com> | 2020-06-27 17:35:33 +0200 |
commit | 83c7ba1ef700eff17f30b6c2782db77710dc322e (patch) | |
tree | 63b5901d96afa6a823a8a14859db84d6c74a283d /src/core/hle/kernel/thread.h | |
parent | SCC: Small corrections to CancelSynchronization (diff) | |
download | yuzu-83c7ba1ef700eff17f30b6c2782db77710dc322e.tar yuzu-83c7ba1ef700eff17f30b6c2782db77710dc322e.tar.gz yuzu-83c7ba1ef700eff17f30b6c2782db77710dc322e.tar.bz2 yuzu-83c7ba1ef700eff17f30b6c2782db77710dc322e.tar.lz yuzu-83c7ba1ef700eff17f30b6c2782db77710dc322e.tar.xz yuzu-83c7ba1ef700eff17f30b6c2782db77710dc322e.tar.zst yuzu-83c7ba1ef700eff17f30b6c2782db77710dc322e.zip |
Diffstat (limited to 'src/core/hle/kernel/thread.h')
-rw-r--r-- | src/core/hle/kernel/thread.h | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/core/hle/kernel/thread.h b/src/core/hle/kernel/thread.h index d8a983200..0a8f7bb65 100644 --- a/src/core/hle/kernel/thread.h +++ b/src/core/hle/kernel/thread.h @@ -497,11 +497,7 @@ public: return affinity_mask; } - ThreadActivity GetActivity() const { - return activity; - } - - void SetActivity(ThreadActivity value); + ResultCode SetActivity(ThreadActivity value); /// Sleeps this thread for the given amount of nanoseconds. ResultCode Sleep(s64 nanoseconds); @@ -564,11 +560,22 @@ public: is_waiting_on_sync = is_waiting; } + bool IsPendingTermination() const { + return will_be_terminated || GetSchedulingStatus() == ThreadSchedStatus::Exited; + } + + bool IsPaused() const { + return pausing_state != 0; + } + private: friend class GlobalScheduler; friend class Scheduler; void SetSchedulingStatus(ThreadSchedStatus new_status); + void AddSchedulingFlag(ThreadSchedFlags flag); + void RemoveSchedulingFlag(ThreadSchedFlags flag); + void SetCurrentPriority(u32 new_priority); void AdjustSchedulingOnAffinity(u64 old_affinity_mask, s32 old_core); @@ -650,18 +657,17 @@ private: u32 ideal_core{0xFFFFFFFF}; u64 affinity_mask{0x1}; - ThreadActivity activity = ThreadActivity::Normal; - s32 ideal_core_override = -1; u64 affinity_mask_override = 0x1; u32 affinity_override_count = 0; u32 scheduling_state = 0; + u32 pausing_state = 0; bool is_running = false; bool is_waiting_on_sync = false; bool is_sync_cancelled = false; - bool will_be_terminated{}; + bool will_be_terminated = false; std::string name; }; |