summaryrefslogtreecommitdiff
path: root/lib/TaskMan.cc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/TaskMan.cc')
-rw-r--r--lib/TaskMan.cc20
1 files changed, 18 insertions, 2 deletions
diff --git a/lib/TaskMan.cc b/lib/TaskMan.cc
index 1af9234..bab9380 100644
--- a/lib/TaskMan.cc
+++ b/lib/TaskMan.cc
@@ -3,8 +3,12 @@
#include <vector.h>
#include "TaskMan.h"
-vector<Task *> TaskMan::TaskList;
-vector<Task *> TaskMan::Zombies;
+TaskMan::TaskList_t TaskMan::TaskList;
+TaskMan::TaskList_t TaskMan::Zombies;
+vector<TaskMan::w4ha_t> TaskMan::w4ha;
+vector<TaskMan::w4pr_t> TaskMan::w4pr;
+vector<TaskMan::w4to_t> TaskMan::w4to;
+
int TaskMan::number = 0;
bool TaskMan::inited = false;
@@ -40,6 +44,18 @@ int TaskMan::AddTask(Task * t) {
return 0;
}
+void TaskMan::WaitFor(Handle * h, Task * t, int flags) {
+ w4ha.push_back(w4ha_t(h, flags, t));
+}
+
+void TaskMan::WaitFor(pid_t p, Task * t) {
+ w4pr.push_back(w4pr_t(p, t));
+}
+
+void TaskMan::WaitFor(timeval t, Task * T, int flags) {
+ w4to.push_back(w4to_t(t, flags, T));
+}
+
void TaskMan::MainLoop() throw (GeneralException) {
TaskList_t::iterator p;
Task * t;