summaryrefslogtreecommitdiff
path: root/src/KingSystem/Framework
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2026-09-28 03:39:31 +0200
committerLéo Lam <leo@leolam.fr>2026-10-06 03:19:39 +0200
commit98f0c80f1d0b9d3ca19f0b38efcb597ee65d9dc0 (patch)
treec05c560af93ab2944f0f565665bd12b9a8bdd07f /src/KingSystem/Framework
parent6442a24670f69f73aaafb925b625e58aeac8e842 (diff)
The task and thread families are plain ksys::
They link in the same block as the plain-ksys:: Message family. getItemValue and applyScreenFade sit in engine UI TUs, hence ksys::ui. (AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
Diffstat (limited to 'src/KingSystem/Framework')
-rw-r--r--src/KingSystem/Framework/CMakeLists.txt4
-rw-r--r--src/KingSystem/Framework/Framework.cpp1
-rw-r--r--src/KingSystem/Framework/frmFramework.cpp1
-rw-r--r--src/KingSystem/Framework/frmFramework.h (renamed from src/KingSystem/Framework/Framework.h)0
-rw-r--r--src/KingSystem/Framework/frmWorkerSupportThreadMgr.cpp20
-rw-r--r--src/KingSystem/Framework/frmWorkerSupportThreadMgr.h16
6 files changed, 21 insertions, 21 deletions
diff --git a/src/KingSystem/Framework/CMakeLists.txt b/src/KingSystem/Framework/CMakeLists.txt
index cbae2e87..e3bea8e3 100644
--- a/src/KingSystem/Framework/CMakeLists.txt
+++ b/src/KingSystem/Framework/CMakeLists.txt
@@ -1,7 +1,7 @@
target_sources(uking PRIVATE
+ frmFramework.cpp
+ frmFramework.h
frmRootTaskParam.h
frmWorkerSupportThreadMgr.cpp
frmWorkerSupportThreadMgr.h
- Framework.cpp
- Framework.h
)
diff --git a/src/KingSystem/Framework/Framework.cpp b/src/KingSystem/Framework/Framework.cpp
deleted file mode 100644
index f11ef44e..00000000
--- a/src/KingSystem/Framework/Framework.cpp
+++ /dev/null
@@ -1 +0,0 @@
-#include "KingSystem/Framework/Framework.h" \ No newline at end of file
diff --git a/src/KingSystem/Framework/frmFramework.cpp b/src/KingSystem/Framework/frmFramework.cpp
new file mode 100644
index 00000000..2dbca29c
--- /dev/null
+++ b/src/KingSystem/Framework/frmFramework.cpp
@@ -0,0 +1 @@
+#include "KingSystem/Framework/frmFramework.h" \ No newline at end of file
diff --git a/src/KingSystem/Framework/Framework.h b/src/KingSystem/Framework/frmFramework.h
index aa390f57..aa390f57 100644
--- a/src/KingSystem/Framework/Framework.h
+++ b/src/KingSystem/Framework/frmFramework.h
diff --git a/src/KingSystem/Framework/frmWorkerSupportThreadMgr.cpp b/src/KingSystem/Framework/frmWorkerSupportThreadMgr.cpp
index 4880df32..fafd9f42 100644
--- a/src/KingSystem/Framework/frmWorkerSupportThreadMgr.cpp
+++ b/src/KingSystem/Framework/frmWorkerSupportThreadMgr.cpp
@@ -15,13 +15,13 @@ SEAD_SINGLETON_DISPOSER_IMPL(WorkerSupportThreadMgr)
void WorkerSupportThreadMgr::init(sead::Heap* heap) {
auto* worker = mWorkers;
for (size_t i = 0; i < NumWorkers; ++i) {
- auto* mgr = new (heap) util::TaskMgr(heap);
- mgr->init<util::ManagedTask>(NumTasks, heap);
+ auto* mgr = new (heap) TaskMgr(heap);
+ mgr->init<ManagedTask>(NumTasks, heap);
worker->task_mgr = mgr;
- worker->task_handle = new (heap) util::ManagedTaskHandle;
+ worker->task_handle = new (heap) ManagedTaskHandle;
for (int j = 0; j < NumTasks; ++j)
- worker->tasks[j] = new (heap) util::ManagedTask(heap);
+ worker->tasks[j] = new (heap) ManagedTask(heap);
const auto affinity = [&] {
if (i == 0)
@@ -30,11 +30,11 @@ void WorkerSupportThreadMgr::init(sead::Heap* heap) {
}();
worker->thread_name.format("WorkerSupport[%d]", int(i));
- worker->task_thread = new (heap) util::GameTaskThread(
+ worker->task_thread = new (heap) GameTaskThread(
worker->thread_name, heap, sead::ThreadUtil::ConvertPrioritySeadToPlatform(17),
sead::MessageQueue::BlockType::Blocking, 0x7fffffff, 0x20000, 32);
- util::TaskThread::InitArg arg;
+ TaskThread::InitArg arg;
arg.batch_size = 0;
arg.heap = nullptr;
arg.queue = nullptr;
@@ -85,23 +85,23 @@ static int getTaskIdx(u32 id) {
return idx[id];
}
-util::ManagedTask* WorkerSupportThreadMgr::getTask(int id) {
+ManagedTask* WorkerSupportThreadMgr::getTask(int id) {
return mWorkers[getWorkerIdx(id)].tasks[getTaskIdx(id)];
}
-void WorkerSupportThreadMgr::submitRequest(int id, util::TaskDelegate* delegate) {
+void WorkerSupportThreadMgr::submitRequest(int id, TaskDelegate* delegate) {
auto& worker = mWorkers[getWorkerIdx(id)];
if (mThreadsPaused)
return;
- util::TaskRequest req{false};
+ TaskRequest req{false};
req.mName = worker.thread_name;
req.mDelegate = delegate;
req.mHasHandle = true;
req.mSynchronous = false;
req.mThread = worker.task_thread;
- util::TaskMgrRequest task_mgr_req;
+ TaskMgrRequest task_mgr_req;
task_mgr_req.request = &req;
task_mgr_req.handle = worker.task_handle;
task_mgr_req.task = worker.tasks[getTaskIdx(id)];
diff --git a/src/KingSystem/Framework/frmWorkerSupportThreadMgr.h b/src/KingSystem/Framework/frmWorkerSupportThreadMgr.h
index 2ec99fa2..25a3ada2 100644
--- a/src/KingSystem/Framework/frmWorkerSupportThreadMgr.h
+++ b/src/KingSystem/Framework/frmWorkerSupportThreadMgr.h
@@ -11,12 +11,12 @@ class DelegateThread;
class Thread;
} // namespace sead
-namespace ksys::util {
+namespace ksys {
class GameTaskThread;
class ManagedTask;
class ManagedTaskHandle;
class TaskMgr;
-} // namespace ksys::util
+} // namespace ksys
namespace ksys::frm {
@@ -28,7 +28,7 @@ class WorkerSupportThreadMgr {
public:
void init(sead::Heap* heap);
- void submitRequest(int id, util::TaskDelegate* delegate);
+ void submitRequest(int id, TaskDelegate* delegate);
void waitForTask(int id);
void pauseThreads();
void resumeThreads();
@@ -39,18 +39,18 @@ private:
static constexpr int NumTasks = 5;
struct Worker {
- util::GameTaskThread* task_thread = nullptr;
+ GameTaskThread* task_thread = nullptr;
sead::DelegateThread* thread;
- util::ManagedTask* tasks[NumTasks];
- util::TaskMgr* task_mgr = nullptr;
- util::ManagedTaskHandle* task_handle;
+ ManagedTask* tasks[NumTasks];
+ TaskMgr* task_mgr = nullptr;
+ ManagedTaskHandle* task_handle;
sead::FixedSafeString<32> thread_name;
};
void initSleeperThreads();
void sleeperThreadFun(sead::Thread* thread, sead::MessageQueue::Element);
- util::ManagedTask* getTask(int id);
+ ManagedTask* getTask(int id);
Worker mWorkers[NumWorkers];
bool mThreadsPaused = false;