X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Scheduler%2FSignalEvent.cc;h=a521bd8c61ea0ce9ea855f3abe3114c1bd6f9402;hb=f2f5d59e83863f3b513950173baee1b6da2aee3c;hp=46ebd220151ee0b5109f41edc12cd80e37b50a27;hpb=03516e8371a90f908ce54dedb3c874eec7dd08ff;p=senf.git diff --git a/Scheduler/SignalEvent.cc b/Scheduler/SignalEvent.cc index 46ebd22..a521bd8 100644 --- a/Scheduler/SignalEvent.cc +++ b/Scheduler/SignalEvent.cc @@ -40,17 +40,17 @@ prefix_ senf::scheduler::detail::SignalDispatcher::SignalDispatcher() if (pipe(sigPipe_) <0) SENF_THROW_SYSTEM_EXCEPTION("pipe()"); sigemptyset(&sigSet_); - FdManager::instance().set(sigPipe_[0], FdManager::EV_READ, this); + detail::FdManager::instance().set(sigPipe_[0], detail::FdManager::EV_READ, this); } prefix_ senf::scheduler::detail::SignalDispatcher::~SignalDispatcher() { for (SignalSet::iterator i (handlers_.begin()); i != handlers_.end(); ++i) { ::signal(i->signal_, SIG_DFL); - FIFORunner::instance().dequeue(&(*i)); + detail::FIFORunner::instance().dequeue(&(*i)); } sigprocmask(SIG_UNBLOCK, &sigSet_, 0); - FdManager::instance().remove(sigPipe_[0]); + detail::FdManager::instance().remove(sigPipe_[0]); close(sigPipe_[0]); close(sigPipe_[1]); } @@ -64,7 +64,7 @@ prefix_ void senf::scheduler::detail::SignalDispatcher::add(SignalEvent & event) handlers_.insert(event); sigaddset(&sigSet_, event.signal_); - FIFORunner::instance().enqueue(&event); + detail::FIFORunner::instance().enqueue(&event); sigset_t sig; sigemptyset(&sig); @@ -89,7 +89,7 @@ prefix_ void senf::scheduler::detail::SignalDispatcher::add(SignalEvent & event) prefix_ void senf::scheduler::detail::SignalDispatcher::remove(SignalEvent & event) { ::signal(event.signal_, SIG_DFL); - FIFORunner::instance().dequeue(&event); + detail::FIFORunner::instance().dequeue(&event); handlers_.erase(event); sigset_t sig; sigemptyset(&sig); @@ -119,6 +119,23 @@ prefix_ void senf::scheduler::detail::SignalDispatcher::sigHandler(int signal, : write(instance().sigPipe_[1], siginfo, sizeof(*siginfo)); } +prefix_ void senf::scheduler::SignalEvent::v_run() +{ + cb_(siginfo_); +} + +prefix_ char const * senf::scheduler::SignalEvent::v_type() + const +{ + return "si"; +} + +prefix_ std::string senf::scheduler::SignalEvent::v_info() + const +{ + return ""; +} + ///////////////////////////////cc.e//////////////////////////////////////// #undef prefix_ //#include "SignalEvent.mpp"