void ReportCallback(int fd, short event, void *arg);
void EndCallback(int fd, short event, void *arg);
void RescanDirCallback(int fd, short event, void *arg);
+void TimerCallback(int fd, short event, void *arg);
// Gateway stuff
// Global variables
-struct event evreport, evrescan, evend;
+struct event evreport, evrescan, evend, evtimer;
int single_fd = -1;
bool file_enable_checkpoint = false;
bool file_checkpointed = false;
evtimer_add(&evend, tint2tv(wait_time));
}
+ evtimer_assign(&evtimer, Channel::evbase, TimerCallback, NULL);
+ evtimer_add(&evtimer, tint2tv(TIMER_USEC));
+
// Enter mainloop, if daemonizing
if (wait_time == TINT_NEVER || (long)wait_time > 0) {
// Arno: always, for statsgw, rate control, etc.
evtimer_add(&evreport, tint2tv(TINT_SEC));
}
+void TimerCallback(int fd, short event, void *arg) {
+ Channel::messageQueue.Flush();
+ evtimer_add(&evtimer, tint2tv(TIMER_USEC));
+}
+
void EndCallback(int fd, short event, void *arg) {
// Called when wait timer expires == fixed time daemon
event_base_loopexit(Channel::evbase, NULL);