fixed merge
This commit is contained in:
123
Planner/Task.h
123
Planner/Task.h
@@ -32,61 +32,64 @@ enum TestType {
|
||||
Correctness, //1
|
||||
Performance, //2
|
||||
};
|
||||
|
||||
class Task {
|
||||
protected:
|
||||
|
||||
class Task {
|
||||
protected:
|
||||
long id;
|
||||
int maxtime;
|
||||
|
||||
int maxtime;
|
||||
int kernels; //получение зависит от типа задачи.
|
||||
String workspace;
|
||||
TaskState state;
|
||||
String workspace;
|
||||
TaskState state;
|
||||
public:
|
||||
String printState() {
|
||||
switch (state) {
|
||||
case Inactive:
|
||||
return String("Inactive");
|
||||
case Waiting:
|
||||
return String("Waiting");
|
||||
case WorkspaceCreated:
|
||||
return String("WorkspaceCreated");
|
||||
case WorkspaceReady:
|
||||
return String("WorkspaceReady");
|
||||
case Running:
|
||||
return String("Running");
|
||||
case Canceled:
|
||||
return String("Canceled");
|
||||
case Finished:
|
||||
return String("Finished");
|
||||
case FinishedAbortedByTimeout:
|
||||
return String("FinishedAbortedByTimeout");
|
||||
case FinishedAbortedByUser:
|
||||
return String("FinishedAbortedByUser");
|
||||
case Done:
|
||||
return String("Done");
|
||||
case DoneWithErrors:
|
||||
return String("DoneWithErrors");
|
||||
case AbortedByTimeout:
|
||||
return String("AbortedByTimeout");
|
||||
case AbortedByUser:
|
||||
return String("AbortedByUser");
|
||||
case Crushed:
|
||||
return String("Crushed");
|
||||
case WrongTestFormat:
|
||||
return String("WrongTestFormat");
|
||||
case InternalError:
|
||||
return String("InternalError");
|
||||
case Queued:
|
||||
return String("Queued");
|
||||
case NoSuchTask:
|
||||
return String("NoSuchTask");
|
||||
case FailedToQueue:
|
||||
return String("FailedToQueue");
|
||||
case AbortingByUser:
|
||||
return String("AbortingByUser");
|
||||
default:
|
||||
return "?";
|
||||
}
|
||||
}
|
||||
long start_time;
|
||||
String printState(){
|
||||
switch(state){
|
||||
case Inactive:
|
||||
return String("Inactive");
|
||||
case Waiting:
|
||||
return String("Waiting");
|
||||
case WorkspaceCreated:
|
||||
return String("WorkspaceCreated");
|
||||
case WorkspaceReady:
|
||||
return String("WorkspaceReady");
|
||||
case Running:
|
||||
return String("Running");
|
||||
case Canceled:
|
||||
return String("Canceled");
|
||||
case Finished:
|
||||
return String("Finished");
|
||||
case FinishedAbortedByTimeout:
|
||||
return String("FinishedAbortedByTimeout");
|
||||
case FinishedAbortedByUser:
|
||||
return String("FinishedAbortedByUser");
|
||||
case Done:
|
||||
return String("Done");
|
||||
case DoneWithErrors:
|
||||
return String("DoneWithErrors");
|
||||
case AbortedByTimeout:
|
||||
return String("AbortedByTimeout");
|
||||
case AbortedByUser:
|
||||
return String("AbortedByUser");
|
||||
case Crushed:
|
||||
return String("Crushed");
|
||||
case WrongTestFormat:
|
||||
return String("WrongTestFormat");
|
||||
case InternalError:
|
||||
return String("InternalError");
|
||||
case Queued:
|
||||
return String("Queued");
|
||||
case NoSuchTask:
|
||||
return String("NoSuchTask");
|
||||
case FailedToQueue:
|
||||
return String("FailedToQueue");
|
||||
case AbortingByUser:
|
||||
return String("AbortingByUser");
|
||||
default:
|
||||
return "?";
|
||||
}
|
||||
}
|
||||
|
||||
//-------------->>
|
||||
long getId() { return id; }
|
||||
long setId(String* id_s) {
|
||||
@@ -146,13 +149,17 @@ public:
|
||||
if (Utils::Exists(workspace + "/TIMEOUT")) {
|
||||
state = AbortedByTimeout;
|
||||
//todo определить по интервалу времени на всякий случай.
|
||||
}else if (Utils::Exists(workspace+"/INTERRUPT")){
|
||||
state=AbortedByUser;
|
||||
} else {
|
||||
long now = Utils::getAbsoluteTime();
|
||||
long delta = now-start_time;
|
||||
if (maxtime<delta){
|
||||
state=AbortedByTimeout;
|
||||
}
|
||||
}
|
||||
else if (Utils::Exists(workspace + "/INTERRUPT")) {
|
||||
state = AbortedByUser;
|
||||
}
|
||||
}
|
||||
|
||||
if (state != Running) {
|
||||
}
|
||||
if (state!=Running){
|
||||
//-
|
||||
busyKernels = Utils::min(busyKernels - kernels, maxKernels);
|
||||
freeKernels = Utils::max(0, maxKernels - busyKernels);
|
||||
|
||||
Reference in New Issue
Block a user