summaryrefslogtreecommitdiff
path: root/Kernel/Scheduler.h
diff options
context:
space:
mode:
authorAndreas Kling <awesomekling@gmail.com>2019-03-23 22:03:17 +0100
committerAndreas Kling <awesomekling@gmail.com>2019-03-23 22:03:17 +0100
commit60d25f0f4a7bfeab18366e66b9ef0b648b5c8ace (patch)
treec0c815ffe60934791175b3087550d0a5f6add93f /Kernel/Scheduler.h
parentb0de6aa8d82f117da3d5617a2df6d52742f6809c (diff)
downloadserenity-60d25f0f4a7bfeab18366e66b9ef0b648b5c8ace.zip
Kernel: Introduce threads, and refactor everything in support of it.
The scheduler now operates on threads, rather than on processes. Each process has a main thread, and can have any number of additional threads. The process exits when the main thread exits. This patch doesn't actually spawn any additional threads, it merely does all the plumbing needed to make it possible. :^)
Diffstat (limited to 'Kernel/Scheduler.h')
-rw-r--r--Kernel/Scheduler.h13
1 files changed, 7 insertions, 6 deletions
diff --git a/Kernel/Scheduler.h b/Kernel/Scheduler.h
index 918b553b3a..04c80e6bd8 100644
--- a/Kernel/Scheduler.h
+++ b/Kernel/Scheduler.h
@@ -3,11 +3,12 @@
#include <AK/Assertions.h>
class Process;
+class Thread;
struct RegisterDump;
-extern Process* current;
-extern Process* g_last_fpu_process;
-extern Process* g_finalizer;
+extern Thread* current;
+extern Thread* g_last_fpu_thread;
+extern Thread* g_finalizer;
class Scheduler {
public:
@@ -17,9 +18,9 @@ public:
static void pick_next_and_switch_now();
static void switch_now();
static bool yield();
- static bool donate_to(Process*, const char* reason);
- static bool context_switch(Process&);
- static void prepare_to_modify_tss(Process&);
+ static bool donate_to(Thread*, const char* reason);
+ static bool context_switch(Thread&);
+ static void prepare_to_modify_tss(Thread&);
static Process* colonel();
static bool is_active();
private: