1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 22:57:44 +00:00

Kernel: Simplify Process factory functions

- Instead of taking the first new thread as an out-parameter, we now
  bundle the process and its first thread in a struct and use that
  as the return value.

- Make all Process factory functions return ErrorOr. Use this to convert
  some places to more TRY().

- Drop the "try_" prefix on Process factory functions.
This commit is contained in:
Andreas Kling 2023-04-02 19:25:36 +02:00
parent 65438d8a85
commit a098266ff5
12 changed files with 319 additions and 78 deletions

View file

@ -28,10 +28,8 @@ static void finalizer_task(void*)
UNMAP_AFTER_INIT void FinalizerTask::spawn()
{
LockRefPtr<Thread> finalizer_thread;
auto finalizer_process = Process::create_kernel_process(finalizer_thread, KString::must_create(finalizer_task_name), finalizer_task, nullptr);
VERIFY(finalizer_process);
g_finalizer = finalizer_thread;
auto [_, finalizer_thread] = MUST(Process::create_kernel_process(KString::must_create(finalizer_task_name), finalizer_task, nullptr));
g_finalizer = move(finalizer_thread);
}
}

View file

@ -14,14 +14,13 @@ namespace Kernel {
UNMAP_AFTER_INIT void SyncTask::spawn()
{
LockRefPtr<Thread> syncd_thread;
(void)Process::create_kernel_process(syncd_thread, KString::must_create("VFS Sync Task"sv), [] {
MUST(Process::create_kernel_process(KString::must_create("VFS Sync Task"sv), [] {
dbgln("VFS SyncTask is running");
for (;;) {
VirtualFileSystem::sync();
(void)Thread::current()->sleep(Time::from_seconds(1));
}
});
}));
}
}