You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by an...@apache.org on 2018/05/02 01:38:07 UTC

[07/31] mesos git commit: Windows: Replaced `WindowsFD` with `int_fd` typedef.

Windows: Replaced `WindowsFD` with `int_fd` typedef.

The latter should be used everywhere but in the implementation for
consistency with the POSIX side of the code.

Also meant fixing the included header (and spacing).

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


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

Branch: refs/heads/master
Commit: ef5113760bf262a425b71744129a863f19576292
Parents: 86bb964
Author: Andrew Schwartzmeyer <an...@schwartzmeyer.com>
Authored: Fri Mar 16 16:17:57 2018 -0700
Committer: Andrew Schwartzmeyer <an...@schwartzmeyer.com>
Committed: Tue May 1 18:36:04 2018 -0700

----------------------------------------------------------------------
 .../include/stout/internal/windows/inherit.hpp  |  5 ++--
 .../stout/include/stout/os/windows/close.hpp    |  5 ++--
 3rdparty/stout/include/stout/os/windows/dup.hpp |  4 +--
 .../stout/include/stout/os/windows/fcntl.hpp    | 12 ++++-----
 .../stout/include/stout/os/windows/fsync.hpp    |  7 +++--
 .../include/stout/os/windows/ftruncate.hpp      |  5 ++--
 .../stout/include/stout/os/windows/pipe.hpp     |  8 +++---
 .../stout/include/stout/os/windows/read.hpp     |  5 ++--
 .../stout/include/stout/os/windows/sendfile.hpp | 28 ++++++++------------
 .../stout/include/stout/os/windows/shell.hpp    |  8 +++---
 .../stout/include/stout/os/windows/socket.hpp   | 15 +++++------
 .../stout/include/stout/os/windows/write.hpp    |  5 ++--
 3rdparty/stout/include/stout/windows/os.hpp     |  1 -
 13 files changed, 48 insertions(+), 60 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/ef511376/3rdparty/stout/include/stout/internal/windows/inherit.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/stout/include/stout/internal/windows/inherit.hpp b/3rdparty/stout/include/stout/internal/windows/inherit.hpp
index 6da6f8e..7dbde82 100644
--- a/3rdparty/stout/include/stout/internal/windows/inherit.hpp
+++ b/3rdparty/stout/include/stout/internal/windows/inherit.hpp
@@ -16,10 +16,9 @@
 #include <stout/error.hpp>
 #include <stout/nothing.hpp>
 #include <stout/try.hpp>
-
-#include <stout/os/windows/fd.hpp>
 #include <stout/windows.hpp>
 
+#include <stout/os/int_fd.hpp>
 
 namespace internal {
 namespace windows {
@@ -29,7 +28,7 @@ namespace windows {
 // NOTE: By default, handles on Windows are not inheritable, so this is
 // primarily used to enable inheritance when passing handles to child processes,
 // and subsequently disable inheritance.
-inline Try<Nothing> set_inherit(const os::WindowsFD& fd, const bool inherit)
+inline Try<Nothing> set_inherit(const int_fd& fd, const bool inherit)
 {
   const BOOL result = ::SetHandleInformation(
       fd, HANDLE_FLAG_INHERIT, inherit ? HANDLE_FLAG_INHERIT : 0);

http://git-wip-us.apache.org/repos/asf/mesos/blob/ef511376/3rdparty/stout/include/stout/os/windows/close.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/stout/include/stout/os/windows/close.hpp b/3rdparty/stout/include/stout/os/windows/close.hpp
index ff635e4..fc3a676 100644
--- a/3rdparty/stout/include/stout/os/windows/close.hpp
+++ b/3rdparty/stout/include/stout/os/windows/close.hpp
@@ -19,12 +19,13 @@
 #include <stout/try.hpp>
 #include <stout/windows/error.hpp>
 
-#include <stout/os/windows/fd.hpp>
+#include <stout/os/int_fd.hpp>
+
 #include <stout/os/windows/socket.hpp>
 
 namespace os {
 
-inline Try<Nothing> close(const WindowsFD& fd)
+inline Try<Nothing> close(const int_fd& fd)
 {
   switch (fd.type()) {
     case WindowsFD::FD_CRT:

http://git-wip-us.apache.org/repos/asf/mesos/blob/ef511376/3rdparty/stout/include/stout/os/windows/dup.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/stout/include/stout/os/windows/dup.hpp b/3rdparty/stout/include/stout/os/windows/dup.hpp
index 265046c..75ef9d8 100644
--- a/3rdparty/stout/include/stout/os/windows/dup.hpp
+++ b/3rdparty/stout/include/stout/os/windows/dup.hpp
@@ -18,11 +18,11 @@
 #include <stout/unreachable.hpp>
 #include <stout/windows.hpp> // For `WinSock2.h`.
 
-#include <stout/os/windows/fd.hpp>
+#include <stout/os/int_fd.hpp>
 
 namespace os {
 
-inline Try<WindowsFD> dup(const WindowsFD& fd)
+inline Try<int_fd> dup(const int_fd& fd)
 {
   switch (fd.type()) {
     case WindowsFD::FD_CRT:

http://git-wip-us.apache.org/repos/asf/mesos/blob/ef511376/3rdparty/stout/include/stout/os/windows/fcntl.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/stout/include/stout/os/windows/fcntl.hpp b/3rdparty/stout/include/stout/os/windows/fcntl.hpp
index 0e8fa8d..bb82676 100644
--- a/3rdparty/stout/include/stout/os/windows/fcntl.hpp
+++ b/3rdparty/stout/include/stout/os/windows/fcntl.hpp
@@ -19,30 +19,30 @@
 #include <stout/try.hpp>
 #include <stout/windows.hpp>
 
+#include <stout/os/int_fd.hpp>
 #include <stout/os/socket.hpp>
-#include <stout/os/windows/fd.hpp>
 
 namespace os {
 
-inline Try<Nothing> cloexec(const WindowsFD& fd)
+inline Try<Nothing> cloexec(const int_fd& fd)
 {
   return Nothing();
 }
 
 
-inline Try<Nothing> unsetCloexec(const WindowsFD& fd)
+inline Try<Nothing> unsetCloexec(const int_fd& fd)
 {
   return Nothing();
 }
 
 
-inline Try<bool> isCloexec(const WindowsFD& fd)
+inline Try<bool> isCloexec(const int_fd& fd)
 {
   return true;
 }
 
 
-inline Try<Nothing> nonblock(const WindowsFD& fd)
+inline Try<Nothing> nonblock(const int_fd& fd)
 {
   switch (fd.type()) {
     case WindowsFD::FD_CRT:
@@ -66,7 +66,7 @@ inline Try<Nothing> nonblock(const WindowsFD& fd)
 
 
 // NOTE: This is not supported on Windows.
-inline Try<bool> isNonblock(const WindowsFD& fd)
+inline Try<bool> isNonblock(const int_fd& fd)
 {
   VLOG(2) << "`os::isNonblock` has been called, but is a stub on Windows";
   return true;

http://git-wip-us.apache.org/repos/asf/mesos/blob/ef511376/3rdparty/stout/include/stout/os/windows/fsync.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/stout/include/stout/os/windows/fsync.hpp b/3rdparty/stout/include/stout/os/windows/fsync.hpp
index 8405247..b0e0b98 100644
--- a/3rdparty/stout/include/stout/os/windows/fsync.hpp
+++ b/3rdparty/stout/include/stout/os/windows/fsync.hpp
@@ -20,14 +20,13 @@
 #include <stout/try.hpp>
 #include <stout/windows.hpp>
 
-#include <stout/os/windows/fd.hpp>
-
+#include <stout/os/int_fd.hpp>
 
 namespace os {
 
-inline Try<Nothing> fsync(const WindowsFD& fd)
+inline Try<Nothing> fsync(const int_fd& fd)
 {
-  if (!FlushFileBuffers(fd)) {
+  if (!::FlushFileBuffers(fd)) {
     return WindowsError(
         "os::fsync: Could not flush file buffers for given file descriptor");
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/ef511376/3rdparty/stout/include/stout/os/windows/ftruncate.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/stout/include/stout/os/windows/ftruncate.hpp b/3rdparty/stout/include/stout/os/windows/ftruncate.hpp
index fc4a8b5..1d90d2b 100644
--- a/3rdparty/stout/include/stout/os/windows/ftruncate.hpp
+++ b/3rdparty/stout/include/stout/os/windows/ftruncate.hpp
@@ -20,13 +20,12 @@
 #include <stout/stringify.hpp>
 #include <stout/try.hpp>
 
-#include <stout/os/windows/fd.hpp>
-
+#include <stout/os/int_fd.hpp>
 
 namespace os {
 
 // Identical in functionality to POSIX standard `ftruncate`.
-inline Try<Nothing> ftruncate(const WindowsFD& fd, __int64 length)
+inline Try<Nothing> ftruncate(const int_fd& fd, __int64 length)
 {
   if (::_chsize_s(fd.crt(), length) != 0) {
     return ErrnoError(

http://git-wip-us.apache.org/repos/asf/mesos/blob/ef511376/3rdparty/stout/include/stout/os/windows/pipe.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/stout/include/stout/os/windows/pipe.hpp b/3rdparty/stout/include/stout/os/windows/pipe.hpp
index 365db94..8ea89b9 100644
--- a/3rdparty/stout/include/stout/os/windows/pipe.hpp
+++ b/3rdparty/stout/include/stout/os/windows/pipe.hpp
@@ -18,12 +18,14 @@
 #include <stout/error.hpp>
 #include <stout/try.hpp>
 
+#include <stout/os/int_fd.hpp>
+
 namespace os {
 
 // Create pipes for interprocess communication. Since the pipes cannot
 // be used directly by Posix `read/write' functions they are wrapped
 // in file descriptors, a process-local concept.
-inline Try<std::array<WindowsFD, 2>> pipe()
+inline Try<std::array<int_fd, 2>> pipe()
 {
   // Create inheritable pipe, as described in MSDN[1].
   //
@@ -39,11 +41,11 @@ inline Try<std::array<WindowsFD, 2>> pipe()
   const BOOL result =
     ::CreatePipe(&read_handle, &write_handle, &securityAttr, 0);
 
-  if (!result) {
+  if (result == FALSE) {
     return WindowsError();
   }
 
-  return std::array<WindowsFD, 2>{read_handle, write_handle};
+  return std::array<int_fd, 2>{read_handle, write_handle};
 }
 
 } // namespace os {

http://git-wip-us.apache.org/repos/asf/mesos/blob/ef511376/3rdparty/stout/include/stout/os/windows/read.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/stout/include/stout/os/windows/read.hpp b/3rdparty/stout/include/stout/os/windows/read.hpp
index 8047ad5..b5b70ad 100644
--- a/3rdparty/stout/include/stout/os/windows/read.hpp
+++ b/3rdparty/stout/include/stout/os/windows/read.hpp
@@ -19,13 +19,12 @@
 #include <stout/unreachable.hpp>
 #include <stout/windows.hpp> // For order-dependent networking headers.
 
+#include <stout/os/int_fd.hpp>
 #include <stout/os/socket.hpp>
-#include <stout/os/windows/fd.hpp>
-
 
 namespace os {
 
-inline ssize_t read(const WindowsFD& fd, void* data, size_t size)
+inline ssize_t read(const int_fd& fd, void* data, size_t size)
 {
   CHECK_LE(size, UINT_MAX);
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/ef511376/3rdparty/stout/include/stout/os/windows/sendfile.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/stout/include/stout/os/windows/sendfile.hpp b/3rdparty/stout/include/stout/os/windows/sendfile.hpp
index fff5872..08afb7f 100644
--- a/3rdparty/stout/include/stout/os/windows/sendfile.hpp
+++ b/3rdparty/stout/include/stout/os/windows/sendfile.hpp
@@ -19,7 +19,7 @@
 #include <stout/try.hpp>
 #include <stout/windows.hpp> // For `winioctl.h`.
 
-#include <stout/os/windows/fd.hpp>
+#include <stout/os/int_fd.hpp>
 
 namespace os {
 
@@ -27,33 +27,27 @@ namespace os {
 // descriptor to the output socket.
 // On error, `Try<ssize_t, SocketError>` contains the error.
 inline Try<ssize_t, SocketError> sendfile(
-    const WindowsFD& s, const WindowsFD& fd, off_t offset, size_t length)
+    const int_fd& s, const int_fd& fd, off_t offset, size_t length)
 {
   // NOTE: We convert the `offset` here to avoid potential data loss
   // in the type casting and bitshifting below.
   uint64_t offset_ = offset;
 
   OVERLAPPED from = {
-      0,
-      0,
-      {static_cast<DWORD>(offset_), static_cast<DWORD>(offset_ >> 32)},
-      nullptr};
+    0,
+    0,
+    {static_cast<DWORD>(offset_), static_cast<DWORD>(offset_ >> 32)},
+    nullptr};
 
   CHECK_LE(length, MAXDWORD);
-  if (TransmitFile(
-          s,
-          fd,
-          static_cast<DWORD>(length),
-          0,
-          &from,
-          nullptr,
-          0) == FALSE &&
-      (WSAGetLastError() == WSA_IO_PENDING ||
-       WSAGetLastError() == ERROR_IO_PENDING)) {
+  if (::TransmitFile(s, fd, static_cast<DWORD>(length), 0, &from, nullptr, 0) ==
+        FALSE &&
+      (::WSAGetLastError() == WSA_IO_PENDING ||
+       ::WSAGetLastError() == ERROR_IO_PENDING)) {
     DWORD sent = 0;
     DWORD flags = 0;
 
-    if (WSAGetOverlappedResult(s, &from, &sent, TRUE, &flags) == TRUE) {
+    if (::WSAGetOverlappedResult(s, &from, &sent, TRUE, &flags) == TRUE) {
       return sent;
     }
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/ef511376/3rdparty/stout/include/stout/os/windows/shell.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/stout/include/stout/os/windows/shell.hpp b/3rdparty/stout/include/stout/os/windows/shell.hpp
index aacd746..8da612a 100644
--- a/3rdparty/stout/include/stout/os/windows/shell.hpp
+++ b/3rdparty/stout/include/stout/os/windows/shell.hpp
@@ -30,7 +30,7 @@
 #include <stout/try.hpp>
 #include <stout/windows.hpp>
 
-#include <stout/os/windows/fd.hpp>
+#include <stout/os/int_fd.hpp>
 
 #include <stout/internal/windows/inherit.hpp>
 
@@ -241,7 +241,7 @@ inline Try<ProcessData> create_process(
     const std::vector<std::string>& argv,
     const Option<std::map<std::string, std::string>>& environment,
     const bool create_suspended = false,
-    const Option<std::array<os::WindowsFD, 3>> pipes = None())
+    const Option<std::array<int_fd, 3>>& pipes = None())
 {
   // TODO(andschwa): Assert that `command` and `argv[0]` are the same.
   const std::wstring arg_string = stringify_args(argv);
@@ -277,7 +277,7 @@ inline Try<ProcessData> create_process(
   // [2] https://msdn.microsoft.com/en-us/library/windows/desktop/ms682499(v=vs.85).aspx
   if (pipes.isSome()) {
     // Each of these handles must be inheritable.
-    foreach (const os::WindowsFD& fd, pipes.get()) {
+    foreach (const int_fd& fd, pipes.get()) {
       const Try<Nothing> inherit = set_inherit(fd, true);
       if (inherit.isError()) {
         return Error(inherit.error());
@@ -319,7 +319,7 @@ inline Try<ProcessData> create_process(
     // NOTE: This is explicit, and does not take into account the
     // previous inheritance semantics of each `HANDLE`. It is assumed
     // that users of this function send non-inheritable handles.
-    foreach (const os::WindowsFD& fd, pipes.get()) {
+    foreach (const int_fd& fd, pipes.get()) {
       const Try<Nothing> inherit = set_inherit(fd, false);
       if (inherit.isError()) {
         return Error(inherit.error());

http://git-wip-us.apache.org/repos/asf/mesos/blob/ef511376/3rdparty/stout/include/stout/os/windows/socket.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/stout/include/stout/os/windows/socket.hpp b/3rdparty/stout/include/stout/os/windows/socket.hpp
index 259b05b..a05b0e2 100644
--- a/3rdparty/stout/include/stout/os/windows/socket.hpp
+++ b/3rdparty/stout/include/stout/os/windows/socket.hpp
@@ -22,9 +22,6 @@
 
 #include <stout/os/int_fd.hpp>
 
-#include <stout/os/windows/fd.hpp>
-
-
 namespace net {
 
 // Initialize Windows socket stack.
@@ -132,8 +129,8 @@ inline Try<int_fd> socket(
 // NOTE: The below wrappers are used to silence some implicit
 // type-casting warnings.
 
-inline os::WindowsFD accept(
-    const os::WindowsFD& fd, sockaddr* addr, socklen_t* addrlen)
+inline int_fd accept(
+    const int_fd& fd, sockaddr* addr, socklen_t* addrlen)
 {
   return ::accept(fd, addr, reinterpret_cast<int*>(addrlen));
 }
@@ -144,7 +141,7 @@ inline os::WindowsFD accept(
 // on POSIX will also work on Windows.
 
 inline int bind(
-    const os::WindowsFD& fd, const sockaddr* addr, socklen_t addrlen)
+    const int_fd& fd, const sockaddr* addr, socklen_t addrlen)
 {
   CHECK_LE(addrlen, INT32_MAX);
   return ::bind(fd, addr, static_cast<int>(addrlen));
@@ -152,7 +149,7 @@ inline int bind(
 
 
 inline int connect(
-    const os::WindowsFD& fd, const sockaddr* address, socklen_t addrlen)
+    const int_fd& fd, const sockaddr* address, socklen_t addrlen)
 {
   CHECK_LE(addrlen, INT32_MAX);
   return ::connect(fd, address, static_cast<int>(addrlen));
@@ -160,7 +157,7 @@ inline int connect(
 
 
 inline ssize_t send(
-    const os::WindowsFD& fd, const void* buf, size_t len, int flags)
+    const int_fd& fd, const void* buf, size_t len, int flags)
 {
   CHECK_LE(len, INT32_MAX);
   return ::send(
@@ -168,7 +165,7 @@ inline ssize_t send(
 }
 
 
-inline ssize_t recv(const os::WindowsFD& fd, void* buf, size_t len, int flags)
+inline ssize_t recv(const int_fd& fd, void* buf, size_t len, int flags)
 {
   CHECK_LE(len, INT32_MAX);
   return ::recv(fd, static_cast<char*>(buf), static_cast<int>(len), flags);

http://git-wip-us.apache.org/repos/asf/mesos/blob/ef511376/3rdparty/stout/include/stout/os/windows/write.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/stout/include/stout/os/windows/write.hpp b/3rdparty/stout/include/stout/os/windows/write.hpp
index 7100648..57660a3 100644
--- a/3rdparty/stout/include/stout/os/windows/write.hpp
+++ b/3rdparty/stout/include/stout/os/windows/write.hpp
@@ -20,13 +20,12 @@
 #include <stout/unreachable.hpp>
 #include <stout/windows.hpp> // For order-dependent networking headers.
 
+#include <stout/os/int_fd.hpp>
 #include <stout/os/socket.hpp>
-#include <stout/os/windows/fd.hpp>
-
 
 namespace os {
 
-inline ssize_t write(const WindowsFD& fd, const void* data, size_t size)
+inline ssize_t write(const int_fd& fd, const void* data, size_t size)
 {
   CHECK_LE(size, INT_MAX);
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/ef511376/3rdparty/stout/include/stout/windows/os.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/stout/include/stout/windows/os.hpp b/3rdparty/stout/include/stout/windows/os.hpp
index 900baf9..af5cb81 100644
--- a/3rdparty/stout/include/stout/windows/os.hpp
+++ b/3rdparty/stout/include/stout/windows/os.hpp
@@ -42,7 +42,6 @@
 #include <stout/os/read.hpp>
 
 #include <stout/os/raw/environment.hpp>
-#include <stout/os/windows/fd.hpp>
 
 // NOTE: These system headers must be included after `stout/windows.hpp`
 // as they may include `Windows.h`. See comments in `stout/windows.hpp`