2025-11-22 20:01:02 -03:00
|
|
|
/*
|
|
|
|
|
* Copyright (c) 2025, ayeteadoe <ayeteadoe@gmail.com>
|
|
|
|
|
*
|
|
|
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <AK/Function.h>
|
|
|
|
|
#include <AK/HashTable.h>
|
|
|
|
|
|
|
|
|
|
namespace WebView {
|
|
|
|
|
|
|
|
|
|
class ProcessMonitor {
|
|
|
|
|
public:
|
2026-05-12 12:20:40 -03:00
|
|
|
ProcessMonitor(Function<void(pid_t, Optional<int> exit_status)> exit_handler);
|
2025-11-22 20:01:02 -03:00
|
|
|
~ProcessMonitor();
|
|
|
|
|
|
|
|
|
|
void add_process(pid_t pid);
|
|
|
|
|
|
|
|
|
|
private:
|
2026-05-12 12:20:40 -03:00
|
|
|
Function<void(pid_t, Optional<int> exit_status)> m_on_process_exit;
|
2025-11-22 20:01:02 -03:00
|
|
|
HashTable<pid_t> m_monitored_processes;
|
|
|
|
|
[[maybe_unused]] int m_signal_handle { -1 };
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
}
|