From 79d813fb72db4a0f57bd89aafe37b0a1fbae8b62 Mon Sep 17 00:00:00 2001 From: Tim Stack Date: Tue, 26 Sep 2023 10:46:57 -0700 Subject: [PATCH] Revert "[readline] try clone() if fork() does not work" This reverts commit 86b999c46423447bd1883ced8408bc635c15c478. --- src/base/auto_pid.cc | 18 +----------------- src/base/auto_pid.hh | 3 --- src/grep_proc.cc | 2 +- src/lnav_commands.cc | 2 +- src/readline_curses.cc | 3 +-- 5 files changed, 4 insertions(+), 24 deletions(-) diff --git a/src/base/auto_pid.cc b/src/base/auto_pid.cc index a8f72605..a6629887 100644 --- a/src/base/auto_pid.cc +++ b/src/base/auto_pid.cc @@ -29,7 +29,6 @@ #include "auto_pid.hh" -#include #include #include "config.h" @@ -41,25 +40,10 @@ namespace pid { bool in_child = false; -pid_t -fork() -{ - auto retval = ::fork(); - - if (retval == -1 && errno == ENOSYS) { -#ifdef SYS_clone - log_error("fork() not implemented, trying clone..."); - retval = syscall(SYS_clone, SIGCHLD, 0); -#endif - } - - return retval; -} - Result, std::string> from_fork() { - auto pid = lnav::pid::fork(); + auto pid = ::fork(); if (pid == -1) { return Err( diff --git a/src/base/auto_pid.hh b/src/base/auto_pid.hh index ca25f2ee..ff44b992 100644 --- a/src/base/auto_pid.hh +++ b/src/base/auto_pid.hh @@ -167,10 +167,7 @@ namespace pid { extern bool in_child; -pid_t fork(); - Result, std::string> from_fork(); - } // namespace pid } // namespace lnav diff --git a/src/grep_proc.cc b/src/grep_proc.cc index ed5f67b5..cb3d0877 100644 --- a/src/grep_proc.cc +++ b/src/grep_proc.cc @@ -118,7 +118,7 @@ grep_proc::start() throw error(errno); } - if ((this->gp_child = lnav::pid::fork()) < 0) { + if ((this->gp_child = fork()) < 0) { throw error(errno); } diff --git a/src/lnav_commands.cc b/src/lnav_commands.cc index 9f6f5eb4..cbdd14f0 100644 --- a/src/lnav_commands.cc +++ b/src/lnav_commands.cc @@ -1857,7 +1857,7 @@ com_pipe_to(exec_context& ec, auto child_fds = for_child_res.unwrap(); - pid_t child_pid = lnav::pid::fork(); + pid_t child_pid = fork(); for (auto& child_fd : child_fds) { child_fd.after_fork(child_pid); diff --git a/src/readline_curses.cc b/src/readline_curses.cc index d645ecc3..58a09b90 100644 --- a/src/readline_curses.cc +++ b/src/readline_curses.cc @@ -58,7 +58,6 @@ #include "base/ansi_scrubber.hh" #include "base/auto_mem.hh" -#include "base/auto_pid.hh" #include "base/fs_util.hh" #include "base/itertools.hh" #include "base/lnav_log.hh" @@ -794,7 +793,7 @@ readline_curses::start() this->rc_pty[RCF_MASTER].close_on_exec(); this->rc_pty[RCF_SLAVE].close_on_exec(); - if ((this->rc_child = lnav::pid::fork()) == -1) { + if ((this->rc_child = fork()) == -1) { log_error("fork() failed -- %s", strerror(errno)); throw error(errno); }