summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/thread.h
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2020-03-07 17:44:35 +0100
committerFernando Sahmkow <fsahmkow27@gmail.com>2020-06-27 17:35:33 +0200
commit83c7ba1ef700eff17f30b6c2782db77710dc322e (patch)
tree63b5901d96afa6a823a8a14859db84d6c74a283d /src/core/hle/kernel/thread.h
parentSCC: Small corrections to CancelSynchronization (diff)
downloadyuzu-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 '')
-rw-r--r--src/core/hle/kernel/thread.h22
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;
};