1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 22:27:44 +00:00

Kernel: Ignore SIGCHLD by default.

Also use an enum for the rather-confusing return value in dispatch_signal().
I will go through the rest of the signals and set them up with the
appropriate default dispositions at some other point.
This commit is contained in:
Andreas Kling 2019-02-04 14:06:38 +01:00
parent ba6ffea03c
commit d7307c3119
4 changed files with 30 additions and 11 deletions

View file

@ -31,6 +31,8 @@ struct CoolGlobals {
extern CoolGlobals* g_cool_globals;
#endif
enum class ShouldUnblockProcess { No = 0, Yes };
struct SignalActionData {
LinearAddress handler_or_sigaction;
dword mask { 0 };
@ -261,8 +263,9 @@ public:
size_t max_open_file_descriptors() const { return m_max_open_file_descriptors; }
void send_signal(byte signal, Process* sender);
bool dispatch_one_pending_signal();
bool dispatch_signal(byte signal);
ShouldUnblockProcess dispatch_one_pending_signal();
ShouldUnblockProcess dispatch_signal(byte signal);
bool has_unmasked_pending_signals() const;
void terminate_due_to_signal(byte signal);
@ -296,6 +299,7 @@ private:
void push_value_on_stack(dword);
int alloc_fd();
void set_default_signal_dispositions();
RetainPtr<PageDirectory> m_page_directory;