fixed merge
This commit is contained in:
7
.idea/workspace.xml
generated
7
.idea/workspace.xml
generated
@@ -6,12 +6,7 @@
|
|||||||
</artifacts-to-build>
|
</artifacts-to-build>
|
||||||
</component>
|
</component>
|
||||||
<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$/src/Repository/Component/Visualiser.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/Component/Visualiser.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/TestsSupervisor_2022.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/TestsSupervisor_2022.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/StartTests.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/StartTests.java" afterDir="false" />
|
|
||||||
</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" />
|
||||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||||
|
|||||||
@@ -8,8 +8,84 @@ using namespace std;
|
|||||||
#include "CompilationSupervisor.h"
|
#include "CompilationSupervisor.h"
|
||||||
#include "RunSupervisor.h"
|
#include "RunSupervisor.h"
|
||||||
#include "Global.h"
|
#include "Global.h"
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <signal.h>
|
||||||
|
|
||||||
|
//https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D0%B3%D0%BD%D0%B0%D0%BB_(Unix)
|
||||||
|
void hdl(int sig)
|
||||||
|
{
|
||||||
|
String file_name = "GOT_SIGNAL_AT_"+String(Utils::getAbsoluteTime());
|
||||||
|
FILE * res = fopen(file_name.getCharArray(),"w");
|
||||||
|
fprintf(res,"%d\n", sig);
|
||||||
|
fclose(res);
|
||||||
|
}
|
||||||
|
void set_handlers(){
|
||||||
|
struct sigaction act;
|
||||||
|
memset(&act, 0, sizeof(act));
|
||||||
|
act.sa_handler = hdl;
|
||||||
|
sigset_t set;
|
||||||
|
sigemptyset(&set);
|
||||||
|
//---
|
||||||
|
sigaddset(&set, SIGABRT);
|
||||||
|
sigaddset(&set, SIGALRM);
|
||||||
|
sigaddset(&set, SIGBUS);
|
||||||
|
sigaddset(&set, SIGVTALRM);
|
||||||
|
sigaddset(&set, SIGFPE);
|
||||||
|
sigaddset(&set, SIGHUP);
|
||||||
|
sigaddset(&set, SIGILL);
|
||||||
|
sigaddset(&set, SIGINT);
|
||||||
|
sigaddset(&set, SIGPIPE);
|
||||||
|
sigaddset(&set, SIGQUIT);
|
||||||
|
sigaddset(&set, SIGSEGV);
|
||||||
|
sigaddset(&set, SIGTERM);
|
||||||
|
sigaddset(&set, SIGTSTP);
|
||||||
|
sigaddset(&set, SIGTTIN);
|
||||||
|
sigaddset(&set, SIGTTOU);
|
||||||
|
sigaddset(&set, SIGUSR1);
|
||||||
|
sigaddset(&set, SIGUSR2);
|
||||||
|
sigaddset(&set, SIGPOLL);
|
||||||
|
sigaddset(&set, SIGPROF);
|
||||||
|
sigaddset(&set, SIGSYS);
|
||||||
|
sigaddset(&set, SIGTRAP);
|
||||||
|
//sigaddset(&set, SIGURG);
|
||||||
|
//sigaddset(&set, SIGCHLD);
|
||||||
|
//sigaddset(&set, SIGCONT);
|
||||||
|
sigaddset(&set, SIGVTALRM);
|
||||||
|
sigaddset(&set, SIGXCPU);
|
||||||
|
sigaddset(&set, SIGXFSZ);
|
||||||
|
//---
|
||||||
|
act.sa_mask = set;
|
||||||
|
//---
|
||||||
|
sigaction(SIGABRT, &act, 0);
|
||||||
|
sigaction(SIGALRM, &act, 0);
|
||||||
|
sigaction(SIGBUS, &act, 0);
|
||||||
|
sigaction(SIGVTALRM, &act, 0);
|
||||||
|
sigaction(SIGFPE, &act, 0);
|
||||||
|
sigaction(SIGHUP, &act, 0);
|
||||||
|
sigaction(SIGILL, &act, 0);
|
||||||
|
sigaction(SIGINT, &act, 0);
|
||||||
|
sigaction(SIGPIPE, &act, 0);
|
||||||
|
sigaction(SIGQUIT, &act, 0);
|
||||||
|
sigaction(SIGSEGV, &act, 0);
|
||||||
|
sigaction(SIGTERM, &act, 0);
|
||||||
|
sigaction(SIGTSTP, &act, 0);
|
||||||
|
sigaction(SIGTTIN, &act, 0);
|
||||||
|
sigaction(SIGTTOU, &act, 0);
|
||||||
|
sigaction(SIGUSR1, &act, 0);
|
||||||
|
sigaction(SIGUSR2, &act, 0);
|
||||||
|
sigaction(SIGPOLL, &act, 0);
|
||||||
|
sigaction(SIGPROF, &act, 0);
|
||||||
|
sigaction(SIGSYS, &act, 0);
|
||||||
|
sigaction(SIGTRAP, &act, 0);
|
||||||
|
sigaction(SIGVTALRM, &act, 0);
|
||||||
|
sigaction(SIGXCPU, &act, 0);
|
||||||
|
sigaction(SIGXFSZ, &act, 0);
|
||||||
|
}
|
||||||
int main(int argc, char ** argv)
|
int main(int argc, char ** argv)
|
||||||
{
|
{
|
||||||
|
//+
|
||||||
|
set_handlers();
|
||||||
|
//-
|
||||||
userWorkspace = String(argv[1]);
|
userWorkspace = String(argv[1]);
|
||||||
packageWorkspace = String(argv[2]);
|
packageWorkspace = String(argv[2]);
|
||||||
maxKernels = atoi(argv[3]);
|
maxKernels = atoi(argv[3]);
|
||||||
@@ -28,7 +104,15 @@ int main(int argc, char ** argv)
|
|||||||
userWorkspace.println();
|
userWorkspace.println();
|
||||||
packageWorkspace.println();
|
packageWorkspace.println();
|
||||||
printf("%d\n", maxKernels);
|
printf("%d\n", maxKernels);
|
||||||
|
int pid = getpid();
|
||||||
|
printf("PID=%d\n", pid);
|
||||||
|
File pidFile("PID", String(pid));
|
||||||
|
pidFile.Close();
|
||||||
|
//---
|
||||||
|
File startFile("STARTED", "+");
|
||||||
|
startFile.Close();
|
||||||
|
//---
|
||||||
|
printf(">>>>\n");
|
||||||
CompilationSupervisor * compilationSupervisor = new CompilationSupervisor();
|
CompilationSupervisor * compilationSupervisor = new CompilationSupervisor();
|
||||||
printf("%ld\n", compilationSupervisor->getLength());
|
printf("%ld\n", compilationSupervisor->getLength());
|
||||||
compilationSupervisor->Do();
|
compilationSupervisor->Do();
|
||||||
|
|||||||
@@ -161,6 +161,7 @@ public:
|
|||||||
map<int, queue<T*>, std::greater<int>> sortedByKernelNeeds;
|
map<int, queue<T*>, std::greater<int>> sortedByKernelNeeds;
|
||||||
|
|
||||||
long activeTasks = 0;
|
long activeTasks = 0;
|
||||||
|
long done = 0;
|
||||||
for (auto& task : this->getElements()) {
|
for (auto& task : this->getElements()) {
|
||||||
if (task->getState() == WorkspaceReady) {
|
if (task->getState() == WorkspaceReady) {
|
||||||
activeTasks++;
|
activeTasks++;
|
||||||
@@ -175,6 +176,7 @@ public:
|
|||||||
bool ignoreCheck = true;
|
bool ignoreCheck = true;
|
||||||
|
|
||||||
while (activeTasks) {
|
while (activeTasks) {
|
||||||
|
long oldActiveTasks = activeTasks;
|
||||||
vector<int> emptyKeys;
|
vector<int> emptyKeys;
|
||||||
|
|
||||||
//ставим задачи от больших к меньшему по ядрам
|
//ставим задачи от больших к меньшему по ядрам
|
||||||
@@ -215,6 +217,7 @@ public:
|
|||||||
it++;
|
it++;
|
||||||
activeTaskSet.erase(task);
|
activeTaskSet.erase(task);
|
||||||
activeTasks--;
|
activeTasks--;
|
||||||
|
done++;
|
||||||
busyKernels -= task->getKernels();
|
busyKernels -= task->getKernels();
|
||||||
printf(" done task with %d kernels and id %ld\n", task->getKernels(), task->getId());
|
printf(" done task with %d kernels and id %ld\n", task->getKernels(), task->getId());
|
||||||
|
|
||||||
@@ -222,6 +225,9 @@ public:
|
|||||||
}
|
}
|
||||||
it++;
|
it++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (oldActiveTasks != activeTasks)
|
||||||
|
printf("done %ld / %ld\n", done, this->getLength());
|
||||||
}
|
}
|
||||||
|
|
||||||
changeState();
|
changeState();
|
||||||
|
|||||||
@@ -76,6 +76,7 @@ void set_handlers(){
|
|||||||
}
|
}
|
||||||
int main(int argc, char ** argv)
|
int main(int argc, char ** argv)
|
||||||
{
|
{
|
||||||
|
//+
|
||||||
set_handlers();
|
set_handlers();
|
||||||
//-
|
//-
|
||||||
userWorkspace = String(argv[1]);
|
userWorkspace = String(argv[1]);
|
||||||
|
|||||||
Reference in New Issue
Block a user