void cSchedule::Cleanup(time_t Time) { cEvent *Event; while ((Event = events.First()) != NULL) { if (!Event->HasTimer() && Event->EndTime() + Setup.EPGLinger * 60 + 3600 < Time) // adding one hour for safety DelEvent(Event); else break; } }
void OSEventThread::uninit_wakeuper(){ DelEvent(&mWakeupFdEvent); #if __Win32__ && defined(USE_SOCKET_PAIR) closesocket(mFdWakeupRead); closesocket(mFdWakeupWrite); #else close(mFdWakeupRead); close(mFdWakeupWrite); #endif mFdWakeupRead = -1; mFdWakeupWrite= -1; }
void Module_Close() { //unset all LOGGING params cause we are bailing. logcmds = 0; lognicks = 0; logclients = 0; logchannels = 0; DelEvent ("USERCONN", evh_glogcon); DelEvent ("USEREXIT", evh_glogexit); DelEvent ("USERNICK", evh_glognick); DelEvent ("CHANJOIN", evh_glogjoin); DelEvent ("CHANPART", evh_glogpart); DelEvent ("CHANKICK", evh_glogkick); DelEvent ("REHASH", evn_glogrehash); }
void cSchedule::DropOutdated(time_t SegmentStart, time_t SegmentEnd, uchar TableID, uchar Version) { if (SegmentStart > 0 && SegmentEnd > 0) { cEvent *p = events.First(); while (p) { cEvent *n = events.Next(p); if (p->EndTime() > SegmentStart) { if (p->StartTime() < SegmentEnd) { // The event overlaps with the given time segment. if (p->TableID() > TableID || p->TableID() == TableID && p->Version() != Version) { // The segment overwrites all events from tables with higher ids, and // within the same table id all events must have the same version. DelEvent(p); } } else break; } p = n; } } }