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__