X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Scheduler%2FSignalEvent.cci;h=a19bc4d7f04ee43b8dd843e63bf0239cca29f757;hb=92f8630b75f3ef50e73c48cde58645dcd1534e27;hp=3a0407e80db0b2def4b27e84f79944705aabc9b9;hpb=925317c7f45c32b01ab9292023db3f372b74bf0f;p=senf.git diff --git a/Scheduler/SignalEvent.cci b/Scheduler/SignalEvent.cci index 3a0407e..a19bc4d 100644 --- a/Scheduler/SignalEvent.cci +++ b/Scheduler/SignalEvent.cci @@ -56,53 +56,37 @@ prefix_ bool senf::scheduler::detail::SignalDispatcher::empty() /////////////////////////////////////////////////////////////////////////// // senf::scheduler::SignalEvent -prefix_ senf::scheduler::SignalEvent::SignalEvent(int signal, Callback cb, +prefix_ senf::scheduler::SignalEvent::SignalEvent(int signal, Callback const & cb, bool initiallyEnabled) - : signal_ (signal), enabled_ (initiallyEnabled), cb_ (cb) + : detail::FIFORunner::TaskInfo(signalName(signal)), signal_ (signal), cb_ (cb) { - name = signalName(signal); - if (enabled_) - senf::scheduler::detail::SignalDispatcher::instance().add(*this); + if (initiallyEnabled) + enable(); } prefix_ senf::scheduler::SignalEvent::~SignalEvent() { if (senf::scheduler::detail::SignalDispatcher::alive()) - senf::scheduler::detail::SignalDispatcher::instance().remove(*this); + disable(); } prefix_ void senf::scheduler::SignalEvent::disable() { - if (enabled_) { + if (detail::SignalSetBase::linked()) senf::scheduler::detail::SignalDispatcher::instance().remove(*this); - enabled_ = false; - } } prefix_ void senf::scheduler::SignalEvent::enable() { - if (! enabled_) { + if (! detail::SignalSetBase::linked()) senf::scheduler::detail::SignalDispatcher::instance().add(*this); - enabled_ = true; - } } -prefix_ bool senf::scheduler::SignalEvent::enabled() - const -{ - return enabled_; -} - -prefix_ void senf::scheduler::SignalEvent::action(Callback cb) +prefix_ void senf::scheduler::SignalEvent::action(Callback const & cb) { cb_ = cb; } -prefix_ void senf::scheduler::SignalEvent::run() -{ - cb_(siginfo_); -} - ///////////////////////////////cci.e/////////////////////////////////////// #undef prefix_