Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions src/linyaps_box/container.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2489,9 +2489,7 @@ int linyaps_box::container::run(run_container_options_t options) const
monitor.enable_io_forwarding(std::move(master), in, out);
}();

if (!monitor.enable_signal_forwarding()) {
return 0;
}
monitor.enable_signal_forwarding();

// TODO: support detach from the parent's process
// Now we wait for the container process to exit
Expand Down
9 changes: 1 addition & 8 deletions src/linyaps_box/container_monitor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

namespace linyaps_box {

auto container_monitor::enable_signal_forwarding() -> bool
auto container_monitor::enable_signal_forwarding() -> void
{
sigset_t set;
utils::sigfillset(set);
Expand All @@ -43,11 +43,6 @@ auto container_monitor::enable_signal_forwarding() -> bool
continue;
}

if (ret.status == linyaps_box::utils::WaitStatus::NoChild) {
// no child process to wait, just exit
return false;
}

break;
}

Expand All @@ -56,8 +51,6 @@ auto container_monitor::enable_signal_forwarding() -> bool
if (!UNLIKELY(signalfd_pollable)) {
throw std::runtime_error("failed to add signalfd to epoll");
}

return true;
}

auto container_monitor::handle_signals() -> void
Expand Down
2 changes: 1 addition & 1 deletion src/linyaps_box/container_monitor.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class container_monitor
container_monitor &operator=(container_monitor &&) = delete;
~container_monitor() = default;

[[nodiscard]] auto enable_signal_forwarding() -> bool;
auto enable_signal_forwarding() -> void;
auto enable_io_forwarding(terminal_master master,
const linyaps_box::utils::file_descriptor &in,
const linyaps_box::utils::file_descriptor &out) -> void;
Expand Down
5 changes: 1 addition & 4 deletions src/linyaps_box/container_ref.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -144,10 +144,7 @@ auto linyaps_box::container_ref::exec(exec_container_option option) -> int
monitor.enable_io_forwarding(std::move(master), in, out);
}();

if (!monitor.enable_signal_forwarding()) {
return 0;
}

monitor.enable_signal_forwarding();
return monitor.wait_container_exit();
}

Expand Down