int add_to_queue(TaskPtr t) { if (is_task_already_exist(t)) { LOG_STRING("Task %d duplicated!!", t->id); return -1; } qu.push(t); tasklist.push_back(t); return 0; }
TaskPtr serve_queue() { TaskPtr t = qu.front(); LOG_STRING("task %d", t->id); g_tqs = TQS_BUSY; if (run_task(t)) // Failed { LOG_STRING("task %d failed", t->id); return 0; } qu.pop(); qu_back.push_back(t); if (qu.empty()) { g_tqs = TQS_FINISHED; } return t; }