1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 11:28:12 +00:00

Kernel: Move Blocker setup out from constructors into setup_blocker()

Instead of registering with blocker sets and whatnot in the various
Blocker subclass constructors, this patch moves such initialization
to a separate setup_blocker() virtual.

setup_blocker() returns false if there's no need to actually block
the thread. This allows us to bail earlier in Thread::block().
This commit is contained in:
Andreas Kling 2021-08-24 12:14:14 +02:00
parent c108c8ff24
commit 82c3cc4640
5 changed files with 92 additions and 39 deletions

View file

@ -87,8 +87,8 @@ private:
, m_message(message)
, m_completion(move(completion))
{
add_to_blocker_set(fs.m_completion_blocker);
}
virtual bool setup_blocker() override;
virtual StringView state_string() const override { return "Waiting"sv; }
virtual Type blocker_type() const override { return Type::Plan9FS; }
virtual void will_unblock_immediately_without_blocking(UnblockImmediatelyReason) override;