Kernel: Threads cannot take arguments anymore

This commit is contained in:
2023-03-02 01:56:09 +02:00
parent 4d8bdec16d
commit 1dd61e93b6
7 changed files with 48 additions and 76 deletions

View File

@@ -17,18 +17,8 @@ namespace Kernel
static Scheduler& get();
const Thread& current_thread() const;
template<typename... Args>
BAN::ErrorOr<void> add_thread(const BAN::Function<void(Args...)>& func, Args... args)
{
uintptr_t flags;
asm volatile("pushf; pop %0" : "=r"(flags));
asm volatile("cli");
TRY(m_threads.emplace_back(func, BAN::forward<Args>(args)...));
if (flags & (1 << 9))
asm volatile("sti");
return {};
}
BAN::ErrorOr<void> add_thread(const BAN::Function<void()>& function);
void reschedule();
void set_current_thread_sleeping();