X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Scheduler%2FSignalEvent.cci;h=df29dd79557ad739d0b1b7d44ea876507fd7b310;hb=6159637c51fd562b2bf68a026a3946b2c84f4e0d;hp=3a0407e80db0b2def4b27e84f79944705aabc9b9;hpb=925317c7f45c32b01ab9292023db3f372b74bf0f;p=senf.git diff --git a/Scheduler/SignalEvent.cci b/Scheduler/SignalEvent.cci index 3a0407e..df29dd7 100644 --- a/Scheduler/SignalEvent.cci +++ b/Scheduler/SignalEvent.cci @@ -56,44 +56,39 @@ 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) + : 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_; + return detail::SignalSetBase::linked(); } -prefix_ void senf::scheduler::SignalEvent::action(Callback cb) +prefix_ void senf::scheduler::SignalEvent::action(Callback const & cb) { cb_ = cb; }