- void addTimer(eTimer* e) { TimerList.insert_in_order(e); }
- void removeTimer(eTimer* e) { TimerList.remove(e); }
+ void addTimer(eTimer* e);
+ void removeTimer(eTimer* e);
+ void applyTimeOffset();
+public:
+ static void addTimeOffset(int offset);
+ void addInstanceTimeOffset(int offset);
+ int getTimeOffset() { return time_offset; }
+
+#ifndef SWIG
+ static ePtrList<eMainloop> existing_loops;
+#endif
+
+ eMainloop()
+ :app_quit_now(0),loop_level(0),retval(0), m_is_idle(0), m_interrupt_requested(0)
+ {
+ 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();
+ }