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

Thread: Return a result from block() indicating why the block terminated

And use this to return EINTR in various places; some of which we were
not handling properly before.

This might expose a few bugs in userspace, but should be more compatible
with other POSIX systems, and is certainly a little cleaner.
This commit is contained in:
Robin Burchell 2019-07-20 11:05:52 +02:00 committed by Andreas Kling
parent 56217c7432
commit 833d444cd8
9 changed files with 73 additions and 38 deletions

View file

@ -242,7 +242,7 @@ extern "C" [[noreturn]] void init()
current->process().set_priority(Process::LowPriority);
for (;;) {
Thread::finalize_dying_threads();
current->block<Thread::SemiPermanentBlocker>(Thread::SemiPermanentBlocker::Reason::Lurking);
(void)current->block<Thread::SemiPermanentBlocker>(Thread::SemiPermanentBlocker::Reason::Lurking);
Scheduler::yield();
}
});