X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FScheduler%2FTimerSource.cc;h=55d6216644210081e8945b32af737efc1b65408c;hb=b9bc7df8121501f84f5a48e854ebaa4984a44932;hp=df05438a7ff1e83a3ade6486c22903cf17771c28;hpb=601d1f509f5bb24df167a4dd5a20da67a0af9af8;p=senf.git diff --git a/senf/Scheduler/TimerSource.cc b/senf/Scheduler/TimerSource.cc index df05438..55d6216 100644 --- a/senf/Scheduler/TimerSource.cc +++ b/senf/Scheduler/TimerSource.cc @@ -1,6 +1,6 @@ // $Id$ // -// Copyright (C) 2009 +// Copyright (C) 2009 // Fraunhofer Institute for Open Communication Systems (FOKUS) // Competence Center NETwork research (NET), St. Augustin, GERMANY // Stefan Bund @@ -31,6 +31,7 @@ #ifdef HAVE_TIMERFD #include #endif +#include "senf/Utils/IgnoreValue.hh" //#include "TimerSource.mpp" #define prefix_ @@ -52,7 +53,7 @@ prefix_ senf::scheduler::detail::POSIXTimerSource::POSIXTimerSource() SENF_THROW_SYSTEM_EXCEPTION("pipe()"); senf::scheduler::detail::FdManager::instance().set( timerPipe_[0], detail::FdManager::EV_READ, this); - + sigemptyset(&sigSet_); sigaddset(&sigSet_, SIGALRM); sigprocmask(SIG_BLOCK, &sigSet_, 0); @@ -126,14 +127,17 @@ prefix_ void senf::scheduler::detail::POSIXTimerSource::sigHandler(int, if (siginfo->si_value.sival_ptr == 0) return; static char data = '\xD0'; - write(static_cast(siginfo->si_value.sival_ptr)->timerPipe_[1], - &data, sizeof(data)); + // If the write fails there's not much we can do anyways ... + senf::IGNORE( write(static_cast(siginfo->si_value.sival_ptr)->timerPipe_[1], + &data, sizeof(data)) ); } prefix_ void senf::scheduler::detail::POSIXTimerSource::signal(int events) { char data; - read(timerPipe_[0], &data, sizeof(data)); + // This should never fail since we are reading a single character from a signaled + // filedescriptor + senf::IGNORE( read(timerPipe_[0], &data, sizeof(data)) ); timeoutEnabled_ = false; } @@ -249,7 +253,8 @@ prefix_ bool senf::scheduler::detail::TimerFDTimerSource::haveTimerFD() prefix_ void senf::scheduler::detail::TimerFDTimerSource::signal(int events) { uint64_t expirations (0); - read(timerfd_, &expirations, sizeof(expirations)); + // We ignore the return value since we ignore the value read anyways + senf::IGNORE( read(timerfd_, &expirations, sizeof(expirations)) ); } prefix_ void senf::scheduler::detail::TimerFDTimerSource::reschedule() @@ -270,7 +275,7 @@ prefix_ void senf::scheduler::detail::TimerFDTimerSource::reschedule() #undef prefix_ //#include "TimerSource.mpp" - + // Local Variables: // mode: c++ // fill-column: 100