www.pudn.com > truetime-1.2-compiled.zip > createjob.cpp
#ifndef CREATE_JOB
#define CREATE_JOB
#include "getnode.cpp"
void ttCreateJob(char *taskName) {
DataNode* dn = getNode(taskName, rtsys->taskList);
if (dn == NULL) {
char buf[200];
sprintf(buf, "ttCreateJob: Non-existent task '%s'", taskName);
MEX_ERROR(buf);
return;
}
UserTask* task = (UserTask*) dn->data;
task->arrival_hook(task);
if (task->nbrJobs == 0) {
task->release = rtsys->time;
task->absDeadline = rtsys->time + task->deadline;
task->budget = task->wcExecTime;
task->moveToList(rtsys->timeQ);
task->release_hook(task); // arrival = release
} else {
task->pending->appendNode(new DataNode(new double(rtsys->time), NULL));
}
task->nbrJobs++;
return;
}
#endif