// mainloop
ePtrList<eMainloop> eMainloop::existing_loops;
+eMainloop::~eMainloop()
+{
+ existing_loops.remove(this);
+ pthread_mutex_destroy(&recalcLock);
+ for (std::map<int, eSocketNotifier*>::iterator it(notifiers.begin());it != notifiers.end();++it)
+ it->second->stop();
+ while(m_timer_list.begin() != m_timer_list.end())
+ m_timer_list.begin()->stop();
+}
+
void eMainloop::addSocketNotifier(eSocketNotifier *sn)
{
int fd = sn->getFD();
existing_loops.push_back(this);
pthread_mutex_init(&recalcLock, 0);
}
- virtual ~eMainloop()
- {
- existing_loops.remove(this);
- pthread_mutex_destroy(&recalcLock);
- for (std::map<int, eSocketNotifier*>::iterator it(notifiers.begin());it != notifiers.end();++it)
- it->second->stop();
- }
+ virtual ~eMainloop();
int looplevel() { return loop_level; }
eDVBRegisteredFrontend(eDVBFrontend *fe, iDVBAdapter *adap)
:disable(new eTimer(eApp)), m_adapter(adap), m_frontend(fe), m_inuse(0)
{
- disable = new eTimer(eApp);
CONNECT(disable->timeout, eDVBRegisteredFrontend::closeFrontend);
}
+ ~eDVBRegisteredFrontend()
+ {
+ delete disable;
+ }
void dec_use()
{
if (!--m_inuse)