From 53e2c044b6dcf63a1f881b3acd7fcfd3ffab89f9 Mon Sep 17 00:00:00 2001 From: Andrew Stitcher Date: Wed, 23 Jun 2010 04:52:49 +0000 Subject: QPID-2388: Do not unmask signals whilst waiting for IO to happen - The client and common libraries do not use signals at all so there is no real reason to allow signal handling on IO threads. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@957109 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/sys/epoll/EpollPoller.cpp | 12 ------------ 1 file changed, 12 deletions(-) (limited to 'cpp/src/qpid/sys') diff --git a/cpp/src/qpid/sys/epoll/EpollPoller.cpp b/cpp/src/qpid/sys/epoll/EpollPoller.cpp index 9ae9bcefb5..9ad05c71a3 100644 --- a/cpp/src/qpid/sys/epoll/EpollPoller.cpp +++ b/cpp/src/qpid/sys/epoll/EpollPoller.cpp @@ -262,7 +262,6 @@ class PollerPrivate { const int epollFd; bool isShutdown; InterruptHandle interruptHandle; - ::sigset_t sigMask; HandleSet registeredHandles; AtomicCount threadCount; @@ -294,7 +293,6 @@ class PollerPrivate { epollFd(::epoll_create(DefaultFds)), isShutdown(false) { QPID_POSIX_CHECK(epollFd); - ::sigemptyset(&sigMask); // Add always readable fd into our set (but not listening to it yet) ::epoll_event epe; epe.events = 0; @@ -562,17 +560,7 @@ Poller::Event Poller::wait(Duration timeout) { // Repeat until we weren't interrupted by signal do { PollerHandleDeletionManager.markAllUnusedInThisThread(); - // Need to run on kernels without epoll_pwait() - // - fortunately in this case we don't really need the atomicity of epoll_pwait() -#if 1 - sigset_t os; - pthread_sigmask(SIG_SETMASK, &impl->sigMask, &os); int rc = ::epoll_wait(impl->epollFd, &epe, 1, timeoutMs); - pthread_sigmask(SIG_SETMASK, &os, 0); -#else - int rc = ::epoll_pwait(impl->epollFd, &epe, 1, timeoutMs, &impl->sigMask); -#endif - if (rc ==-1 && errno != EINTR) { QPID_POSIX_CHECK(rc); } else if (rc > 0) { -- cgit v1.2.1