From 8756ccdd07c690e61f9896830ca8bec12d4cfee1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Sun, 20 Sep 2020 17:59:41 +0200 Subject: ksys: Start adding OverlayArenaSystem --- src/KingSystem/Utils/Thread/Task.h | 4 ++-- src/KingSystem/Utils/Thread/TaskQueueBase.cpp | 6 +----- src/KingSystem/Utils/Thread/TaskQueueBase.h | 4 ++-- 3 files changed, 5 insertions(+), 9 deletions(-) (limited to 'src/KingSystem/Utils/Thread') diff --git a/src/KingSystem/Utils/Thread/Task.h b/src/KingSystem/Utils/Thread/Task.h index df54db8e..3f076d0b 100644 --- a/src/KingSystem/Utils/Thread/Task.h +++ b/src/KingSystem/Utils/Thread/Task.h @@ -131,7 +131,7 @@ protected: friend class TaskQueueBase; friend class TaskThread; - enum class Flag { + enum class Flag : u8 { DeleteDelegate = 0x1, DoNotDeleteDelegate = 0x2, NeedsToSignalEvent = 0x4, @@ -173,7 +173,7 @@ protected: } u8 mLaneId = 0; - sead::TypedBitFlag mFlags = Flag::DoNotDeleteDelegate; + sead::TypedBitFlag mFlags = Flag::DoNotDeleteDelegate; bool mDelegateResult = false; TaskDelegate* mDelegate = nullptr; void* mUserData = nullptr; diff --git a/src/KingSystem/Utils/Thread/TaskQueueBase.cpp b/src/KingSystem/Utils/Thread/TaskQueueBase.cpp index 430fdbf2..b6303ccb 100644 --- a/src/KingSystem/Utils/Thread/TaskQueueBase.cpp +++ b/src/KingSystem/Utils/Thread/TaskQueueBase.cpp @@ -57,7 +57,6 @@ void TaskQueueBase::clear() { mQueueEmptyEvent.wait(); } -// NON_MATCHING: swapped operands for a csel. The arg.set_flag1 check looks suspicious. bool TaskQueueBase::init(const InitArg& arg) { if (arg.max_num_threads == 0) return false; @@ -65,10 +64,7 @@ bool TaskQueueBase::init(const InitArg& arg) { if (!mThreads.tryAllocBuffer(arg.max_num_threads, arg.heap)) return false; - if (!arg.enable_locks) - mFlags.reset(Flag::Lock); - else - mFlags.set(Flag::Lock); + mFlags.change(Flag::Lock, arg.enable_locks); if (arg.num_lanes <= 0 || arg.num_lanes > 0x100) return false; diff --git a/src/KingSystem/Utils/Thread/TaskQueueBase.h b/src/KingSystem/Utils/Thread/TaskQueueBase.h index 3d4b44cf..bdc7503f 100644 --- a/src/KingSystem/Utils/Thread/TaskQueueBase.h +++ b/src/KingSystem/Utils/Thread/TaskQueueBase.h @@ -88,7 +88,7 @@ public: void fetchTask(Task** out_task); protected: - enum class Flag { + enum class Flag : u8 { Lock = 0x1, PreventThreadPoolChanges = 0x2, }; @@ -145,7 +145,7 @@ protected: void notifyThreadsForNewTasks(); - sead::TypedBitFlag mFlags; + sead::TypedBitFlag mFlags; sead::OffsetList mActiveTasks; sead::Buffer mLanes; Event mQueueEmptyEvent; -- cgit v1.2.3