mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 15:40:19 +00:00
Kernel: Process should send SIGCHLD to its parent when it dies.
This commit is contained in:
parent
7fe600f250
commit
ba6ffea03c
Notes:
sideshowbarker
2024-07-19 15:52:20 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/ba6ffea03c2
2 changed files with 13 additions and 0 deletions
|
@ -2172,6 +2172,11 @@ void Process::die()
|
|||
m_fds.clear();
|
||||
m_tty = nullptr;
|
||||
destroy_all_windows();
|
||||
|
||||
InterruptDisabler disabler;
|
||||
if (auto* parent_process = Process::from_pid(m_ppid)) {
|
||||
parent_process->send_signal(SIGCHLD, this);
|
||||
}
|
||||
}
|
||||
|
||||
size_t Process::amount_virtual() const
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include <LibGUI/GEventLoop.h>
|
||||
#include <LibGUI/GTextBox.h>
|
||||
#include <LibGUI/GCheckBox.h>
|
||||
#include <signal.h>
|
||||
|
||||
class ClockWidget final : public GWidget {
|
||||
public:
|
||||
|
@ -69,8 +70,15 @@ static GWindow* make_font_test_window();
|
|||
static GWindow* make_launcher_window();
|
||||
static GWindow* make_clock_window();
|
||||
|
||||
void handle_sigchld(int)
|
||||
{
|
||||
dbgprintf("Got SIGCHLD\n");
|
||||
}
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
signal(SIGCHLD, handle_sigchld);
|
||||
|
||||
GEventLoop loop;
|
||||
#if 0
|
||||
auto* font_test_window = make_font_test_window();
|
||||
|
|
Loading…
Reference in a new issue