Kernel/LibC: Implement SA_RESTART

I have been thinking how to do this for a long time but I finally
figured out a semi-clean way
This commit is contained in:
2025-04-22 02:42:44 +03:00
parent 34e680d792
commit 808c97020a
6 changed files with 16 additions and 7 deletions

View File

@@ -79,7 +79,9 @@ namespace Kernel
auto& current_thread = Thread::current();
if (current_thread.can_add_signal_to_execute())
current_thread.handle_signal();
if (current_thread.handle_signal())
if (ret.is_error() && ret.error().get_error_code() == EINTR)
ret = BAN::Error::from_errno(ERESTART);
ASSERT(Kernel::Thread::current().state() == Kernel::Thread::State::Executing);