#include #include "TaskMan.h" bool TaskMan::inited = false; static got_sigchild = 0; void taskman_sigchild(int sig) { got_sigchild = 1; signal(SIGCHILD, taskman_sigchild); } TaskMan::TaskMan() throw (GeneralException) { throw GeneralException("You can't instanciate a Task Manager."); } void TaskMan::Init() throw (GeneralException) { if (inited) { throw GeneralException("Task Manager already initialised."); } signal(SIGCHILD, taskman_sigchild); inited = true; number = 0; } int TaskMan::AddTask(Task * t) { TaskList.push_back(t); number++; return 0; } int TaskMan::RemoveTask(Task * t) { int i; for (i = 0; i < number; i++) { if (TaskList[i] == t) { TaskList.erase(i); number--; return 0; } } return -1; } void TaskMan::MainLoop() throw (GeneralException) { while (1) { if (number == 0) { throw GeneralException("TaskMan: No more task to manage."); } #ifdef HAVE_POLL #else #endif } }