diff options
author | Sebastian Falbesoner <sebastian.falbesoner@gmail.com> | 2024-04-16 12:55:55 +0200 |
---|---|---|
committer | Sebastian Falbesoner <sebastian.falbesoner@gmail.com> | 2024-04-16 14:25:00 +0200 |
commit | 79c30363733503a1fb7d4c98aa0d56ced0be6e32 (patch) | |
tree | f06adddce6d85a4c7d1242bcf0dcc037fef84654 /src/util | |
parent | 62db8f8e5a6cfe19d905afc91731d6bc8a665f61 (diff) |
remove unneeded close_fds option from cpp-subprocess
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/subprocess.hpp | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/src/util/subprocess.hpp b/src/util/subprocess.hpp index 56f17c771f..ea555c58a4 100644 --- a/src/util/subprocess.hpp +++ b/src/util/subprocess.hpp @@ -642,20 +642,6 @@ struct bufsize { }; /*! - * Option to close all file descriptors - * when the child process is spawned. - * The close fd list does not include - * input/output/error if they are explicitly - * set as part of the Popen arguments. - * - * Default value is false. - */ -struct close_fds { - explicit close_fds(bool c): close_all(c) {} - bool close_all = false; -}; - -/*! * Base class for all arguments involving string value. */ struct string_arg @@ -929,7 +915,6 @@ struct ArgumentDeducer void set_option(input&& inp); void set_option(output&& out); void set_option(error&& err); - void set_option(close_fds&& cfds); private: Popen* popen_ = nullptr; @@ -1255,8 +1240,6 @@ private: std::future<void> cleanup_future_; #endif - bool close_fds_ = false; - std::string exe_name_; std::string cwd_; env_map_t env_; @@ -1572,10 +1555,6 @@ namespace detail { if (err.rd_ch_ != -1) popen_->stream_.err_read_ = err.rd_ch_; } - inline void ArgumentDeducer::set_option(close_fds&& cfds) { - popen_->close_fds_ = cfds.close_all; - } - inline void Child::execute_child() { #ifndef __USING_WINDOWS__ @@ -1622,17 +1601,6 @@ namespace detail { if (stream.err_write_ != -1 && stream.err_write_ > 2) close(stream.err_write_); - // Close all the inherited fd's except the error write pipe - if (parent_->close_fds_) { - int max_fd = sysconf(_SC_OPEN_MAX); - if (max_fd == -1) throw OSError("sysconf failed", errno); - - for (int i = 3; i < max_fd; i++) { - if (i == err_wr_pipe_) continue; - close(i); - } - } - // Change the working directory if provided if (parent_->cwd_.length()) { sys_ret = chdir(parent_->cwd_.c_str()); |