[Transcode] Better close herited fds

This commit is contained in:
emeric
2015-08-05 00:03:54 +02:00
parent ecb6f5502d
commit 8de3e2f01e
+1 -4
View File
@@ -157,15 +157,12 @@ AvConvTranscoder::AvConvTranscoder(const Parameters& parameters)
// See boost process FAQ // See boost process FAQ
{ {
boost::lock_guard<boost::mutex> lock(_mutex); boost::lock_guard<boost::mutex> lock(_mutex);
std::vector<int> ranges = { 3, 1024 }; // fd range to be closed
_child = std::make_shared<boost::process::child>( boost::process::execute( _child = std::make_shared<boost::process::child>( boost::process::execute(
boost::process::initializers::run_exe(_avConvPath), boost::process::initializers::run_exe(_avConvPath),
boost::process::initializers::set_cmd_line(oss.str()), boost::process::initializers::set_cmd_line(oss.str()),
boost::process::initializers::bind_stdout(sink), boost::process::initializers::bind_stdout(sink),
boost::process::initializers::close_fd(STDIN_FILENO), boost::process::initializers::close_fds_if([](int fd) { return fd != STDOUT_FILENO;})
boost::process::initializers::close_fd(STDERR_FILENO),
boost::process::initializers::close_fds(ranges)
) )
); );
} }