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; }
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; }