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/06/28 18:22:28 UTC

[14/16] mesos git commit: Added Windows IOCP backend to libprocess's CMake build.

Added Windows IOCP backend to libprocess's CMake build.

With the CMake option `ENABLE_LIBWINIO`, we can now conditionally turn
on the Windows IOCP backend for libprocess.


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

Branch: refs/heads/master
Commit: e2cba0eb9126753f0b079932ee69effdd3c5a04a
Parents: 6bf70a1
Author: Akash Gupta <ak...@hotmail.com>
Authored: Wed Jun 27 15:01:10 2018 -0700
Committer: Andrew Schwartzmeyer <an...@schwartzmeyer.com>
Committed: Wed Jun 27 15:06:10 2018 -0700

----------------------------------------------------------------------
 3rdparty/libprocess/include/process/io.hpp |  5 +++++
 3rdparty/libprocess/src/CMakeLists.txt     | 22 +++++++++++++++++-----
 2 files changed, 22 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/e2cba0eb/3rdparty/libprocess/include/process/io.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/io.hpp b/3rdparty/libprocess/include/process/io.hpp
index 5329bfe..468b362 100644
--- a/3rdparty/libprocess/include/process/io.hpp
+++ b/3rdparty/libprocess/include/process/io.hpp
@@ -26,6 +26,7 @@
 namespace process {
 namespace io {
 
+#ifndef ENABLE_LIBWINIO
 /**
  * A possible event while polling.
  *
@@ -37,6 +38,7 @@ const short READ = 0x01;
  * @copydoc process::io::READ
  */
 const short WRITE = 0x02;
+#endif // ENABLE_LIBWINIO
 
 /**
  * Buffered read chunk size.
@@ -69,6 +71,8 @@ Try<Nothing> prepare_async(int_fd fd);
  */
 Try<bool> is_async(int_fd fd);
 
+
+#ifndef ENABLE_LIBWINIO
 /**
  * Returns the events (a subset of the events specified) that can be
  * performed on the specified file descriptor without blocking.
@@ -78,6 +82,7 @@ Try<bool> is_async(int_fd fd);
  */
 // TODO(benh): Add a version which takes multiple file descriptors.
 Future<short> poll(int_fd fd, short events);
+#endif // ENABLE_LIBWINIO
 
 
 /**

http://git-wip-us.apache.org/repos/asf/mesos/blob/e2cba0eb/3rdparty/libprocess/src/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/CMakeLists.txt b/3rdparty/libprocess/src/CMakeLists.txt
index 5f617eb..bb8af6d 100644
--- a/3rdparty/libprocess/src/CMakeLists.txt
+++ b/3rdparty/libprocess/src/CMakeLists.txt
@@ -40,8 +40,6 @@ set(PROCESS_SRC
   metrics/metrics.cpp
   mime.cpp
   pid.cpp
-  posix/io.cpp
-  posix/poll_socket.cpp
   process.cpp
   profiler.cpp
   reap.cpp
@@ -52,8 +50,7 @@ set(PROCESS_SRC
 
 if (WIN32)
   list(APPEND PROCESS_SRC
-    windows/subprocess.cpp
-    windows/libwinio.cpp) # TEMPORARY
+    windows/subprocess.cpp)
 else ()
   list(APPEND PROCESS_SRC
     posix/subprocess.cpp)
@@ -68,12 +65,26 @@ if (ENABLE_LIBEVENT)
   list(APPEND PROCESS_SRC
     posix/libevent/libevent.cpp
     posix/libevent/libevent_poll.cpp)
+elseif (ENABLE_LIBWINIO)
+  list(APPEND PROCESS_SRC
+    windows/event_loop.cpp
+    windows/libwinio.cpp)
 else ()
   list(APPEND PROCESS_SRC
     posix/libev/libev.cpp
     posix/libev/libev_poll.cpp)
 endif ()
 
+if (ENABLE_LIBWINIO)
+  list(APPEND PROCESS_SRC
+    windows/io.cpp
+    windows/poll_socket.cpp)
+else ()
+  list(APPEND PROCESS_SRC
+    posix/io.cpp
+    posix/poll_socket.cpp)
+endif ()
+
 if (ENABLE_SSL)
   list(APPEND PROCESS_SRC
     jwt.cpp
@@ -100,10 +111,11 @@ target_link_libraries(
 target_link_libraries(
   process PRIVATE
   concurrentqueue
-  $<IF:$<BOOL:${ENABLE_LIBEVENT}>,libevent,libev>)
+  $<IF:$<BOOL:${ENABLE_LIBEVENT}>,libevent,$<$<NOT:$<PLATFORM_ID:Windows>>:libev>>)
 
 target_compile_definitions(
   process PRIVATE
+  $<$<BOOL:${ENABLE_LIBWINIO}>:ENABLE_LIBWINIO>
   $<$<BOOL:${ENABLE_LOCK_FREE_RUN_QUEUE}>:LOCK_FREE_RUN_QUEUE>
   $<$<BOOL:${ENABLE_LOCK_FREE_EVENT_QUEUE}>:LOCK_FREE_EVENT_QUEUE>
   $<$<BOOL:${ENABLE_LAST_IN_FIRST_OUT_FIXED_SIZE_SEMAPHORE}>:LAST_IN_FIRST_OUT_FIXED_SIZE_SEMAPHORE>)