diff options
author | Benoit Foucher <benoit@zeroc.com> | 2006-10-31 15:07:59 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2006-10-31 15:07:59 +0000 |
commit | 60e5ad760f21d676fa37ff7026ce521ebbbe3bc9 (patch) | |
tree | fc399d968e3a5de6e263248b6f0784ea5743d5a2 /cpp/src/Ice/ThreadPool.h | |
parent | Fix (diff) | |
download | ice-60e5ad760f21d676fa37ff7026ce521ebbbe3bc9.tar.bz2 ice-60e5ad760f21d676fa37ff7026ce521ebbbe3bc9.tar.xz ice-60e5ad760f21d676fa37ff7026ce521ebbbe3bc9.zip |
Use poll() instead of select() on Unix.
Diffstat (limited to 'cpp/src/Ice/ThreadPool.h')
-rw-r--r-- | cpp/src/Ice/ThreadPool.h | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/cpp/src/Ice/ThreadPool.h b/cpp/src/Ice/ThreadPool.h index 81bc26b6418..4914b1b0fa5 100644 --- a/cpp/src/Ice/ThreadPool.h +++ b/cpp/src/Ice/ThreadPool.h @@ -22,12 +22,18 @@ #include <Ice/EventHandlerF.h> #include <list> -#ifdef _WIN32
-# include <winsock2.h>
+#ifdef _WIN32 +# include <winsock2.h> #else # define SOCKET int +# ifdef __linux +# include <sys/epoll.h> +# else +# include <sys/poll.h> +# endif #endif + namespace IceInternal { @@ -66,7 +72,14 @@ private: SOCKET _lastFd; SOCKET _fdIntrRead; SOCKET _fdIntrWrite; +#if defined(_WIN32) fd_set _fdSet; +#elif defined(__linux) + int _epollFd; + std::vector<struct epoll_event> _events; +#else + std::vector<struct pollfd> _pollFdSet; +#endif std::list<std::pair<SOCKET, EventHandlerPtr> > _changes; // Event handler set for addition; null for removal. |