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>)