X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2FConnectors.cc;h=a39857ef5519197bdf5327d08b1483c44f7960e3;hb=c7ddbbb0bc014bdfe6daef91e2d1c512d77e9fff;hp=ab1a03825c57cbc4015ee0b97464bf44fefd0f1d;hpb=0735c5775ee327263ebcd7f33844f9883919dcc6;p=senf.git diff --git a/PPI/Connectors.cc b/PPI/Connectors.cc index ab1a038..a39857e 100644 --- a/PPI/Connectors.cc +++ b/PPI/Connectors.cc @@ -53,8 +53,23 @@ prefix_ void senf::ppi::connector::Connector::connect(Connector & target) peer_ = & target; target.peer_ = this; - if (ModuleManager::instance().running()) - v_init(); + if (! initializationScheduled()) + enqueueInitializable(); + if (! peer().initializationScheduled()) + peer().enqueueInitializable(); +} + +prefix_ void senf::ppi::connector::Connector::disconnect() +{ + SENF_ASSERT( peer_ ); + Connector & peer (*peer_); + peer_ = 0; + peer.peer_ = 0; + + if (! initializationScheduled()) + enqueueInitializable(); + if (! peer.initializationScheduled()) + peer.enqueueInitializable(); } prefix_ std::type_info const & senf::ppi::connector::Connector::packetTypeID()