You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ji...@apache.org on 2016/12/07 00:41:36 UTC

[2/3] mesos git commit: Added a UNSET_CLOEXEC child hook to subprocess.

Added a UNSET_CLOEXEC child hook to subprocess.

Review: https://reviews.apache.org/r/54433


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/46be1e80
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/46be1e80
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/46be1e80

Branch: refs/heads/master
Commit: 46be1e806963f724bb9d0b13f5c50e9cdd4f8469
Parents: 0649ef1
Author: Jie Yu <yu...@gmail.com>
Authored: Tue Dec 6 10:04:24 2016 -0800
Committer: Jie Yu <yu...@gmail.com>
Committed: Tue Dec 6 16:41:20 2016 -0800

----------------------------------------------------------------------
 3rdparty/libprocess/include/process/subprocess_base.hpp | 6 ++++++
 3rdparty/libprocess/src/subprocess.cpp                  | 8 ++++++++
 2 files changed, 14 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/46be1e80/3rdparty/libprocess/include/process/subprocess_base.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/subprocess_base.hpp b/3rdparty/libprocess/include/process/subprocess_base.hpp
index 0d9c74a..74a4bef 100644
--- a/3rdparty/libprocess/include/process/subprocess_base.hpp
+++ b/3rdparty/libprocess/include/process/subprocess_base.hpp
@@ -204,6 +204,12 @@ public:
      * `ChildHook` for duplicating a file descriptor.
      */
     static ChildHook DUP2(int oldFd, int newFd);
+
+    /**
+     * `ChildHook` to unset CLOEXEC on a file descriptor. This is
+     * useful to explicitly pass an FD to a subprocess.
+     */
+    static ChildHook UNSET_CLOEXEC(int fd);
 #endif // __WINDOWS__
 
     /**

http://git-wip-us.apache.org/repos/asf/mesos/blob/46be1e80/3rdparty/libprocess/src/subprocess.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/subprocess.cpp b/3rdparty/libprocess/src/subprocess.cpp
index 340fc32..ad19b08 100644
--- a/3rdparty/libprocess/src/subprocess.cpp
+++ b/3rdparty/libprocess/src/subprocess.cpp
@@ -98,6 +98,14 @@ Subprocess::ChildHook Subprocess::ChildHook::DUP2(int oldFd, int newFd)
     return os::dup2(oldFd, newFd);
   });
 }
+
+
+Subprocess::ChildHook Subprocess::ChildHook::UNSET_CLOEXEC(int fd)
+{
+  return Subprocess::ChildHook([fd]() -> Try<Nothing> {
+    return os::unsetCloexec(fd);
+  });
+}
 #endif // __WINDOWS__