++
добивание живых задач, отключение лишней рассылки админам, настройка удаления или не удаления пакета на машине
This commit is contained in:
14
.idea/workspace.xml
generated
14
.idea/workspace.xml
generated
@@ -8,9 +8,21 @@
|
|||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
|
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServer/UserAccount/UserAccountsDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServer/UserAccount/UserAccountsDBTable.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/NormalProperties.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/NormalProperties.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/StartSelectedDVMConfigurations.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/StartSelectedDVMConfigurations.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingPackage/TestingPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingPackage/TestingPackage.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingPlanner.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingPlanner.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/SAPFOR/SapforTestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/SAPFOR/SapforTestingPlanner.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/DVMPackage/DVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/DVMPackage/DVMPackage.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/RemoteDVMTestingPlanner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/RemoteDVMTestingPlanner.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Visual/MainUI.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Visual/MainUI.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Visual/Menus/MainMenuBar/VisualiserSettingsMenu/TestingMenu.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Visual/Menus/MainMenuBar/VisualiserSettingsMenu/TestingMenu.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/files/File.h" beforeDir="false" afterPath="$PROJECT_DIR$/src/files/File.h" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/files/Supervisor.h" beforeDir="false" afterPath="$PROJECT_DIR$/src/files/Supervisor.h" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/files/Supervisor.h" beforeDir="false" afterPath="$PROJECT_DIR$/src/files/Supervisor.h" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/files/Task.h" beforeDir="false" afterPath="$PROJECT_DIR$/src/files/Task.h" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/files/starter.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/src/files/starter.cpp" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/files/version.h" beforeDir="false" afterPath="$PROJECT_DIR$/src/files/version.h" afterDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
|||||||
@@ -30,6 +30,7 @@
|
|||||||
"EmailOnTestingProgress": true,
|
"EmailOnTestingProgress": true,
|
||||||
"CompleteCompilationOptions": false,
|
"CompleteCompilationOptions": false,
|
||||||
"CompleteRunEnvironments": false,
|
"CompleteRunEnvironments": false,
|
||||||
|
"ErasePackageWorkspace": true,
|
||||||
"lastMachineId": 28,
|
"lastMachineId": 28,
|
||||||
"lastUserId": 36,
|
"lastUserId": 36,
|
||||||
"lastCompilerId": 110,
|
"lastCompilerId": 110,
|
||||||
|
|||||||
@@ -69,10 +69,6 @@ public class UserAccountsDBTable extends iDBTable<UserAccount> {
|
|||||||
if ((account.subscribe_active != 0) && !res.contains(account.email))
|
if ((account.subscribe_active != 0) && !res.contains(account.email))
|
||||||
res.add(account.email);
|
res.add(account.email);
|
||||||
}
|
}
|
||||||
for (String admin_mail : Constants.admins_mails) {
|
|
||||||
if (!res.contains(admin_mail))
|
|
||||||
res.add(admin_mail);
|
|
||||||
}
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ import Common.Utils.Vector_;
|
|||||||
|
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
public class Constants {
|
public class Constants {
|
||||||
public static final int version = 1209;
|
public static final int version = 1210;
|
||||||
public static final int planner_version = 21;
|
public static final int planner_version = 24;
|
||||||
public static final int testingMaxKernels = 64;
|
public static final int testingMaxKernels = 64;
|
||||||
//--
|
//--
|
||||||
public static final String ApplicationFileName = "VisualSapfor.jar";
|
public static final String ApplicationFileName = "VisualSapfor.jar";
|
||||||
|
|||||||
@@ -76,6 +76,8 @@ public class NormalProperties extends VisualDVMProperties {
|
|||||||
public boolean CompleteCompilationOptions = true;
|
public boolean CompleteCompilationOptions = true;
|
||||||
@Expose
|
@Expose
|
||||||
public boolean CompleteRunEnvironments = true;
|
public boolean CompleteRunEnvironments = true;
|
||||||
|
@Expose
|
||||||
|
public boolean ErasePackageWorkspace = true;
|
||||||
//--
|
//--
|
||||||
@Expose
|
@Expose
|
||||||
public int lastMachineId = CommonConstants.Nan;
|
public int lastMachineId = CommonConstants.Nan;
|
||||||
@@ -119,6 +121,8 @@ public class NormalProperties extends VisualDVMProperties {
|
|||||||
@Override
|
@Override
|
||||||
public String getFieldDescription(String fieldName) {
|
public String getFieldDescription(String fieldName) {
|
||||||
switch (fieldName) {
|
switch (fieldName) {
|
||||||
|
case "ErasePackageWorkspace":
|
||||||
|
return "Очистка рабочего пространства пакета на целевой машине";
|
||||||
case "CompleteCompilationOptions":
|
case "CompleteCompilationOptions":
|
||||||
return "Дополнение опций компиляции";
|
return "Дополнение опций компиляции";
|
||||||
case "CompleteRunEnvironments":
|
case "CompleteRunEnvironments":
|
||||||
|
|||||||
@@ -73,7 +73,8 @@ public class StartSelectedDVMConfigurations extends PublishServerObject<TestingS
|
|||||||
user,
|
user,
|
||||||
compiler,
|
compiler,
|
||||||
configurations,
|
configurations,
|
||||||
Global.normalProperties.EmailOnTestingProgress ? 1 : 0
|
Global.normalProperties.EmailOnTestingProgress ? 1 : 0,
|
||||||
|
Global.normalProperties.ErasePackageWorkspace ? 1 : 0
|
||||||
);
|
);
|
||||||
//----
|
//----
|
||||||
if (target.tasksCount == 0) {
|
if (target.tasksCount == 0) {
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ public abstract class TestingPackage<J> extends riDBObject {
|
|||||||
//--
|
//--
|
||||||
public int kernels = 1;
|
public int kernels = 1;
|
||||||
public int needsEmail = 0;
|
public int needsEmail = 0;
|
||||||
//---
|
|
||||||
public String version = ""; //версия тестируемого объекта
|
public String version = ""; //версия тестируемого объекта
|
||||||
public String drv = ""; //пусть к исполняемому файлы тестируемого объекта
|
public String drv = ""; //пусть к исполняемому файлы тестируемого объекта
|
||||||
//--
|
//--
|
||||||
|
|||||||
@@ -107,9 +107,8 @@ public abstract class TestingPlanner<P extends TestingPackage> extends TestingCl
|
|||||||
message.subject = "Состояние пакета тестирования " + packageDescription() + " " +
|
message.subject = "Состояние пакета тестирования " + packageDescription() + " " +
|
||||||
Utils_.Brackets(testingPackage.id) + " изменилось на " + Utils_.Brackets(testingPackage.state.getDescription());
|
Utils_.Brackets(testingPackage.id) + " изменилось на " + Utils_.Brackets(testingPackage.state.getDescription());
|
||||||
message.text = testingPackage.description;
|
message.text = testingPackage.description;
|
||||||
Vector<String> recipients = new Vector<>(Constants.admins_mails);
|
Vector<String> recipients = new Vector<>();
|
||||||
if (!recipients.contains(testingPackage.sender_address))
|
recipients.add(testingPackage.sender_address);
|
||||||
recipients.add(testingPackage.sender_address);
|
|
||||||
//--
|
//--
|
||||||
for (String address : recipients)
|
for (String address : recipients)
|
||||||
ServerCommand(ServerCode.Email, address, message);
|
ServerCommand(ServerCode.Email, address, message);
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import _VisualDVM.TestingSystem.DVM.DVMConfiguration.DVMConfiguration;
|
|||||||
import _VisualDVM.TestingSystem.DVM.DVMSettings.DVMSettings;
|
import _VisualDVM.TestingSystem.DVM.DVMSettings.DVMSettings;
|
||||||
import _VisualDVM.TestingSystem.DVM.DVMTasks.DVMCompilationTask;
|
import _VisualDVM.TestingSystem.DVM.DVMTasks.DVMCompilationTask;
|
||||||
import _VisualDVM.TestingSystem.DVM.DVMTasks.DVMRunTask;
|
import _VisualDVM.TestingSystem.DVM.DVMTasks.DVMRunTask;
|
||||||
|
import com.sun.org.glassfish.gmbal.Description;
|
||||||
import javafx.util.Pair;
|
import javafx.util.Pair;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -32,6 +33,9 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
|
|||||||
public String user_name = "";
|
public String user_name = "";
|
||||||
public String user_workspace;
|
public String user_workspace;
|
||||||
//---
|
//---
|
||||||
|
@Description("DEFAULT 1")
|
||||||
|
public int eraseWorkspace = 1; //удалять рабочее пространство пакета на целевой машине.(отключать для отладки)
|
||||||
|
//---
|
||||||
public DVMPackage() {
|
public DVMPackage() {
|
||||||
}
|
}
|
||||||
public DVMPackage(UserAccount account,
|
public DVMPackage(UserAccount account,
|
||||||
@@ -39,7 +43,7 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
|
|||||||
User user,
|
User user,
|
||||||
Compiler compiler,
|
Compiler compiler,
|
||||||
Vector<DVMConfiguration> configurations,
|
Vector<DVMConfiguration> configurations,
|
||||||
int neeedsEmail_in) {
|
int neeedsEmail_in, int eraseWorkspace_in) {
|
||||||
id = CommonConstants.Nan;
|
id = CommonConstants.Nan;
|
||||||
//-
|
//-
|
||||||
sender_name = account.name;
|
sender_name = account.name;
|
||||||
@@ -56,6 +60,7 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
|
|||||||
version = compiler.getVersionInfo();
|
version = compiler.getVersionInfo();
|
||||||
//-
|
//-
|
||||||
needsEmail = neeedsEmail_in;
|
needsEmail = neeedsEmail_in;
|
||||||
|
eraseWorkspace = eraseWorkspace_in;
|
||||||
//--
|
//--
|
||||||
state = TasksPackageState.Queued;
|
state = TasksPackageState.Queued;
|
||||||
//--
|
//--
|
||||||
@@ -158,6 +163,7 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
|
|||||||
machine_port = tasksPackage.machine_port;
|
machine_port = tasksPackage.machine_port;
|
||||||
user_name = tasksPackage.user_name;
|
user_name = tasksPackage.user_name;
|
||||||
user_workspace = tasksPackage.user_workspace;
|
user_workspace = tasksPackage.user_workspace;
|
||||||
|
eraseWorkspace = tasksPackage.eraseWorkspace;
|
||||||
}
|
}
|
||||||
public Machine getMachine() {
|
public Machine getMachine() {
|
||||||
return new Machine(machine_name, machine_address, machine_port, MachineType.Server);
|
return new Machine(machine_name, machine_address, machine_port, MachineType.Server);
|
||||||
|
|||||||
@@ -269,7 +269,7 @@ public class RemoteDVMTestingPlanner extends DVMTestingPlanner {
|
|||||||
UpdatePackageState(TasksPackageState.Analysis);
|
UpdatePackageState(TasksPackageState.Analysis);
|
||||||
}
|
}
|
||||||
//---
|
//---
|
||||||
if (user.connection.Exists(packageRemoteWorkspace))
|
if (testingPackage.eraseWorkspace!=0 && user.connection.Exists(packageRemoteWorkspace))
|
||||||
user.connection.RMDIR(packageRemoteWorkspace.full_name);
|
user.connection.RMDIR(packageRemoteWorkspace.full_name);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -107,8 +107,9 @@ public class MainUI extends UIModule_ {
|
|||||||
getMainWindow().getCallbackWindow().showNoBugReports();
|
getMainWindow().getCallbackWindow().showNoBugReports();
|
||||||
Global.normalProperties.setControlVisible("AutoBugReportsLoad", false);
|
Global.normalProperties.setControlVisible("AutoBugReportsLoad", false);
|
||||||
Global.normalProperties.setControlVisible("AutoTestsLoad", false);
|
Global.normalProperties.setControlVisible("AutoTestsLoad", false);
|
||||||
Global.normalProperties.setControlVisible("AddDefaultsToCompilationOptions", false);
|
Global.normalProperties.setControlVisible("CompleteCompilationOptions", false);
|
||||||
Global.normalProperties.setControlVisible("AddDefaultsToRunEnvironments", false);
|
Global.normalProperties.setControlVisible("CompleteRunEnvironments", false);
|
||||||
|
Global.normalProperties.setControlVisible("ErasePackageWorkspace", false);
|
||||||
Global.normalProperties.AutoCheckTesting = false;
|
Global.normalProperties.AutoCheckTesting = false;
|
||||||
Global.normalProperties.Update();
|
Global.normalProperties.Update();
|
||||||
}
|
}
|
||||||
@@ -120,8 +121,9 @@ public class MainUI extends UIModule_ {
|
|||||||
getMainWindow().getCallbackWindow().showMyOnlyBugReports();
|
getMainWindow().getCallbackWindow().showMyOnlyBugReports();
|
||||||
Global.normalProperties.setControlVisible("AutoBugReportsLoad", true);
|
Global.normalProperties.setControlVisible("AutoBugReportsLoad", true);
|
||||||
Global.normalProperties.setControlVisible("AutoTestsLoad", false);
|
Global.normalProperties.setControlVisible("AutoTestsLoad", false);
|
||||||
Global.normalProperties.setControlVisible("AddDefaultsToCompilationOptions", false);
|
Global.normalProperties.setControlVisible("CompleteCompilationOptions", false);
|
||||||
Global.normalProperties.setControlVisible("AddDefaultsToRunEnvironments", false);
|
Global.normalProperties.setControlVisible("CompleteRunEnvironments", false);
|
||||||
|
Global.normalProperties.setControlVisible("ErasePackageWorkspace", false);
|
||||||
Global.normalProperties.AutoCheckTesting = false;
|
Global.normalProperties.AutoCheckTesting = false;
|
||||||
Global.normalProperties.Update();
|
Global.normalProperties.Update();
|
||||||
}
|
}
|
||||||
@@ -133,8 +135,9 @@ public class MainUI extends UIModule_ {
|
|||||||
getMainWindow().getCallbackWindow().showAllBugreports();
|
getMainWindow().getCallbackWindow().showAllBugreports();
|
||||||
Global.normalProperties.setControlVisible("AutoBugReportsLoad", true);
|
Global.normalProperties.setControlVisible("AutoBugReportsLoad", true);
|
||||||
Global.normalProperties.setControlVisible("AutoTestsLoad", true);
|
Global.normalProperties.setControlVisible("AutoTestsLoad", true);
|
||||||
Global.normalProperties.setControlVisible("AddDefaultsToCompilationOptions", true);
|
Global.normalProperties.setControlVisible("CompleteCompilationOptions", true);
|
||||||
Global.normalProperties.setControlVisible("AddDefaultsToRunEnvironments", true);
|
Global.normalProperties.setControlVisible("CompleteRunEnvironments", true);
|
||||||
|
Global.normalProperties.setControlVisible("ErasePackageWorkspace", true);
|
||||||
}
|
}
|
||||||
void showAdminRights() {
|
void showAdminRights() {
|
||||||
Global.mainModule.SetAdminPassesAccess();
|
Global.mainModule.SetAdminPassesAccess();
|
||||||
@@ -143,10 +146,10 @@ public class MainUI extends UIModule_ {
|
|||||||
getMainWindow().getCallbackWindow().showAllBugReportsAdmin(); //метод избыточный. возможно.
|
getMainWindow().getCallbackWindow().showAllBugReportsAdmin(); //метод избыточный. возможно.
|
||||||
Global.normalProperties.setControlVisible("AutoBugReportsLoad", true);
|
Global.normalProperties.setControlVisible("AutoBugReportsLoad", true);
|
||||||
Global.normalProperties.setControlVisible("AutoTestsLoad", true);
|
Global.normalProperties.setControlVisible("AutoTestsLoad", true);
|
||||||
Global.normalProperties.setControlVisible("AddDefaultsToCompilationOptions", true);
|
Global.normalProperties.setControlVisible("CompleteCompilationOptions", true);
|
||||||
Global.normalProperties.setControlVisible("AddDefaultsToRunEnvironments", true);
|
Global.normalProperties.setControlVisible("CompleteRunEnvironments", true);
|
||||||
}
|
Global.normalProperties.setControlVisible("ErasePackageWorkspace", true);
|
||||||
;
|
};
|
||||||
public void ShowAccount() {
|
public void ShowAccount() {
|
||||||
getMainWindow().getCallbackWindow().ShowAccountInfo();
|
getMainWindow().getCallbackWindow().ShowAccountInfo();
|
||||||
switch (Global.mainModule.getAccount().role) {
|
switch (Global.mainModule.getAccount().role) {
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ public class TestingMenu extends PropertiesSubmenu {
|
|||||||
super("Тестирование", null,
|
super("Тестирование", null,
|
||||||
Global.normalProperties,
|
Global.normalProperties,
|
||||||
"CompleteCompilationOptions",
|
"CompleteCompilationOptions",
|
||||||
"CompleteRunEnvironments"
|
"CompleteRunEnvironments",
|
||||||
|
"ErasePackageWorkspace"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,21 @@ public:
|
|||||||
ptr = NULL;
|
ptr = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
String read() {
|
||||||
|
int c;
|
||||||
|
String res;
|
||||||
|
do {
|
||||||
|
c = fgetc(ptr);
|
||||||
|
switch (c){
|
||||||
|
case EOF:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
res.addChar(c);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} while (c!=EOF);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
Text* readLines() {
|
Text* readLines() {
|
||||||
Text* lines = new Text();
|
Text* lines = new Text();
|
||||||
int c;
|
int c;
|
||||||
|
|||||||
@@ -236,7 +236,11 @@ public:
|
|||||||
// прошло больше 10 секунд, проверяем нужно ли завершиться
|
// прошло больше 10 секунд, проверяем нужно ли завершиться
|
||||||
if (Utils::getAbsoluteTime() - timer_killed > 10) {
|
if (Utils::getAbsoluteTime() - timer_killed > 10) {
|
||||||
if (checkKilled()) {
|
if (checkKilled()) {
|
||||||
ToLog("killed");
|
ToLog("killing active tasks...");
|
||||||
|
ToLog("activeTasks="+ String((int)activeTasks)+";busyKernels="+String((int)busyKernels));
|
||||||
|
killActiveTasks(activeTaskSet);
|
||||||
|
ToLog("done");
|
||||||
|
ToLog("waiting for active tasks...");
|
||||||
while (busyKernels) {
|
while (busyKernels) {
|
||||||
ToLog("activeTasks="+ String((int)activeTasks)+";busyKernels="+String((int)busyKernels));
|
ToLog("activeTasks="+ String((int)activeTasks)+";busyKernels="+String((int)busyKernels));
|
||||||
checkTasksFinish(activeTaskSet, toDel, activeTasks, done, busyKernels, buf);
|
checkTasksFinish(activeTaskSet, toDel, activeTasks, done, busyKernels, buf);
|
||||||
@@ -246,7 +250,7 @@ public:
|
|||||||
toDel.clear();
|
toDel.clear();
|
||||||
Utils::Sleep(5);
|
Utils::Sleep(5);
|
||||||
}
|
}
|
||||||
ToLog("exit for main while");
|
ToLog("exit of main while");
|
||||||
killed = true;
|
killed = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -262,7 +266,7 @@ public:
|
|||||||
File tmp(outFile, String(buf.c_str()));
|
File tmp(outFile, String(buf.c_str()));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
//всегда финальное состояние.
|
//всегда финальное состояние. даже если это компиляция.
|
||||||
saveState("RunningEnd");
|
saveState("RunningEnd");
|
||||||
ToLog("quit application");
|
ToLog("quit application");
|
||||||
std::exit(0);
|
std::exit(0);
|
||||||
@@ -289,6 +293,11 @@ public:
|
|||||||
bool checkKilled() const {
|
bool checkKilled() const {
|
||||||
return Utils::Exists("kill");
|
return Utils::Exists("kill");
|
||||||
}
|
}
|
||||||
|
void killActiveTasks(const set<T*>& activeTaskSet) {
|
||||||
|
for (auto& task : activeTaskSet){
|
||||||
|
task->kill();
|
||||||
|
}
|
||||||
|
}
|
||||||
void checkTasksFinish(const set<T*>& activeTaskSet, vector<T*>& toDel, size_t& activeTasks,
|
void checkTasksFinish(const set<T*>& activeTaskSet, vector<T*>& toDel, size_t& activeTasks,
|
||||||
size_t& done, int& busyKernels, string& buf) {
|
size_t& done, int& busyKernels, string& buf) {
|
||||||
// проверяем нет ли завершившихся задач
|
// проверяем нет ли завершившихся задач
|
||||||
@@ -299,10 +308,7 @@ public:
|
|||||||
activeTasks--;
|
activeTasks--;
|
||||||
done += task->getKernels();
|
done += task->getKernels();
|
||||||
busyKernels -= task->getKernels();
|
busyKernels -= task->getKernels();
|
||||||
printf(" done task with %d kernels and id %ld\n", task->getKernels(), task->getId());
|
|
||||||
buf += to_string(task->getId()) + " " + string(task->printState().getCharArray()) + " " + to_string(task->getTotalTime()) + "\n";
|
buf += to_string(task->getId()) + " " + string(task->printState().getCharArray()) + " " + to_string(task->getTotalTime()) + "\n";
|
||||||
//copy after end of while
|
|
||||||
//task->copyResults(pathRes);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -202,4 +202,19 @@ public:
|
|||||||
Utils::Copy(workspace + "/err.txt", resultPath + "/err.txt");
|
Utils::Copy(workspace + "/err.txt", resultPath + "/err.txt");
|
||||||
return resultPath;
|
return resultPath;
|
||||||
}
|
}
|
||||||
|
void kill(){
|
||||||
|
//--
|
||||||
|
String("killing task "+id).println();
|
||||||
|
String pid_path(workspace+"/PID");
|
||||||
|
if (Utils::Exists(pid_path)){
|
||||||
|
File pid_file(&pid_path);
|
||||||
|
String pid = pid_file.read();
|
||||||
|
if (!pid.isEmpty()){
|
||||||
|
String kill_command = "kill -2 "+ pid;
|
||||||
|
kill_command.println();
|
||||||
|
system(kill_command.getCharArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//--
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -28,6 +28,11 @@ int main(int argc, char ** argv){
|
|||||||
int pid = fork();
|
int pid = fork();
|
||||||
if (pid == 0)
|
if (pid == 0)
|
||||||
execvp( argv[1],args);
|
execvp( argv[1],args);
|
||||||
|
else {
|
||||||
|
FILE * pid_file = fopen("PID","w");
|
||||||
|
fprintf(pid_file,"%d", pid);
|
||||||
|
fclose(pid_file);
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
catch (const char * exception){
|
catch (const char * exception){
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
21
|
24
|
||||||
Reference in New Issue
Block a user