Esempio n. 1
0
static void*
logger_main(void *arg) {
  qlogger_t *thread;

  thread = (qlogger_t*)arg;
  thread->running = 1;
  (*thread->done)();
  qengine_loop(thread->engine);

  qmailbox_free(&logger->box);
  qengine_destroy(logger->engine);
  destroy_logs();
  qlog_destroy_free_list();

  return NULL;
}
Esempio n. 2
0
static void* main_loop(void *arg) {
  int         i, fd;
  qsignal_t  *signal;
  qlog_thread_t *thread;

  thread = (qlog_thread_t*)arg;
  thread->started = 1;
  while (!thread->stop && qengine_loop(thread->engine) == 0) {
  }

  /*
   * now the server terminate, do the clean work
   */
  for (i = 0; i < g_log_thread->thread_num; ++i) {
    signal = g_log_thread->signals[i];
    fd = qsignal_get_fd(signal);
    qengine_del_event(g_log_thread->engine, fd, QEVENT_READ);
    thread_log_box(0, -1, signal);
  }
  qengine_destroy(g_log_thread->engine);

  return NULL;
}