diff --git a/src/core/hle/kernel/thread.h b/src/core/hle/kernel/thread.h
index f1aa358a4e..11ef298883 100644
--- a/src/core/hle/kernel/thread.h
+++ b/src/core/hle/kernel/thread.h
@@ -4,6 +4,7 @@
 
 #pragma once
 
+#include <array>
 #include <functional>
 #include <string>
 #include <utility>
@@ -346,10 +347,11 @@ public:
 
     void SetStatus(ThreadStatus new_status);
 
-    constexpr s64 GetLastScheduledTick() const {
+    s64 GetLastScheduledTick() const {
         return this->last_scheduled_tick;
     }
-    constexpr void SetLastScheduledTick(s64 tick) {
+
+    void SetLastScheduledTick(s64 tick) {
         this->last_scheduled_tick = tick;
     }
 
@@ -481,7 +483,7 @@ public:
         return ideal_core;
     }
 
-    constexpr const KAffinityMask& GetAffinityMask() const {
+    const KAffinityMask& GetAffinityMask() const {
         return affinity_mask;
     }
 
@@ -490,10 +492,11 @@ public:
     /// Sleeps this thread for the given amount of nanoseconds.
     ResultCode Sleep(s64 nanoseconds);
 
-    constexpr s64 GetYieldScheduleCount() const {
+    s64 GetYieldScheduleCount() const {
         return this->schedule_count;
     }
-    constexpr void SetYieldScheduleCount(s64 count) {
+
+    void SetYieldScheduleCount(s64 count) {
         this->schedule_count = count;
     }
 
@@ -570,14 +573,9 @@ public:
         return has_exited;
     }
 
-    struct QueueEntry {
-    private:
-        Thread* prev;
-        Thread* next;
-
+    class QueueEntry {
     public:
-        constexpr QueueEntry() : prev(nullptr), next(nullptr) { /* ... */
-        }
+        constexpr QueueEntry() = default;
 
         constexpr void Initialize() {
             this->prev = nullptr;
@@ -590,18 +588,23 @@ public:
         constexpr Thread* GetNext() const {
             return this->next;
         }
-        constexpr void SetPrev(Thread* t) {
-            this->prev = t;
+        constexpr void SetPrev(Thread* thread) {
+            this->prev = thread;
         }
-        constexpr void SetNext(Thread* t) {
-            this->next = t;
+        constexpr void SetNext(Thread* thread) {
+            this->next = thread;
         }
+
+    private:
+        Thread* prev{};
+        Thread* next{};
     };
 
-    constexpr QueueEntry& GetPriorityQueueEntry(s32 core) {
+    QueueEntry& GetPriorityQueueEntry(s32 core) {
         return this->per_core_priority_queue_entry[core];
     }
-    constexpr const QueueEntry& GetPriorityQueueEntry(s32 core) const {
+
+    const QueueEntry& GetPriorityQueueEntry(s32 core) const {
         return this->per_core_priority_queue_entry[core];
     }
 
@@ -619,9 +622,6 @@ public:
         disable_count--;
     }
 
-    ThreadStatus status = ThreadStatus::Dormant;
-    u32 scheduling_state = 0;
-
 private:
     friend class GlobalSchedulerContext;
     friend class KScheduler;
@@ -638,6 +638,9 @@ private:
     ThreadContext64 context_64{};
     std::shared_ptr<Common::Fiber> host_context{};
 
+    ThreadStatus status = ThreadStatus::Dormant;
+    u32 scheduling_state = 0;
+
     u64 thread_id = 0;
 
     VAddr entry_point = 0;
@@ -701,7 +704,7 @@ private:
 
     KScheduler* scheduler = nullptr;
 
-    QueueEntry per_core_priority_queue_entry[Core::Hardware::NUM_CPU_CORES]{};
+    std::array<QueueEntry, Core::Hardware::NUM_CPU_CORES> per_core_priority_queue_entry{};
 
     u32 ideal_core{0xFFFFFFFF};
     KAffinityMask affinity_mask{};