// $Id$
//
-// Copyright (C) 2008
+// Copyright (C) 2008
// Fraunhofer Institute for Open Communication Systems (FOKUS)
// Competence Center NETwork research (NET), St. Augustin, GERMANY
// Stefan Bund <g0dil@berlios.de>
// Custom includes
#include <errno.h>
-#include "../Utils/Exception.hh"
+#include <senf/Utils/Exception.hh>
#define prefix_
///////////////////////////////ct.p////////////////////////////////////////
prefix_ bool senf::scheduler::detail::Poller<Value>::set(int fd, int events, Value * data)
{
struct epoll_event ev = { events, { data } };
- if (epoll_ctl(epollFd_, EPOLL_CTL_ADD, fd, &ev) != -1)
+ if (epoll_ctl(epollFd_, EPOLL_CTL_ADD, fd, &ev) != -1)
return true;
if (errno == EEXIST)
if (epoll_ctl(epollFd_, EPOLL_CTL_MOD, fd, &ev) != -1)
{
static epoll_event events[NumEvents];
int rv (0);
- for (;;) {
- rv = epoll_wait(epollFd_, events, NumEvents, timeout_);
- if (rv == -1) {
- if (errno == EINTR)
- continue;
+ rv = epoll_wait(epollFd_, events, NumEvents, timeout_);
+ if (rv == -1) {
+ if (errno == EINTR)
+ rv = 0;
+ else
SENF_THROW_SYSTEM_EXCEPTION("epoll_wait()");
- }
- break;
}
return boost::make_iterator_range(
boost::make_transform_iterator(events, GetPollResult()),