Skip to content

Commit e6e97c1

Browse files
authored
Merge pull request #116 from marszub/closing_threads
Thread interrupt handling
2 parents e9a7507 + 218fa7b commit e6e97c1

File tree

6 files changed

+45
-5
lines changed

6 files changed

+45
-5
lines changed

config/config/connectionConfig.json

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"server_ip": "0.0.0.0",
3+
"server_port": 40000,
4+
"public": true,
5+
"my_ip_global": "0.0.0.0",
6+
"my_port_global": 40001,
7+
"my_ip_local": "0.0.0.0",
8+
"my_port_local": 40001,
9+
"max_connection_time": 5,
10+
"progress_retry_time": 50,
11+
"heart_beat_period": 5,
12+
"heart_beat_lifetime": 50,
13+
"thread_num": 2
14+
}

config/config/taskConfig.json

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"hash": "C2B35CFCEB4C9E310D37255AC70644A6",
3+
"taskSize": 5000000,
4+
"atomicTaskSize": 100000,
5+
"maxStringLength": 8,
6+
"characters": "0123456789ABCD"
7+
}

config/taskConfig.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
2-
"hash": "B59C67BF196A4758191E42F76670CEBA",
3-
"taskSize": 1000000,
2+
"hash": "C2B35CFCEB4C9E310D37255AC70644A6",
3+
"taskSize": 5000000,
44
"atomicTaskSize": 100000,
5-
"maxStringLength": 7,
6-
"characters": "012345678"
5+
"maxStringLength": 8,
6+
"characters": "0123456789ABCD"
77
}

src/main/java/pl/edu/agh/calculationp2p/Main.java

+8
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,14 @@ public static void main(String[] args) {
124124
} catch (InterruptedException e) {
125125
Logger logger = LoggerFactory.getLogger("");
126126
logger.error(e.getMessage());
127+
128+
uiControllerThread.interrupt();
129+
for (Thread thread :
130+
taskResolverThreads) {
131+
thread.interrupt();
132+
}
133+
messageProcessorThread.interrupt();
134+
schedulerThread.interrupt();
127135
}
128136

129137
}

src/main/java/pl/edu/agh/calculationp2p/calculation/TaskResolver.java

+5
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ public TaskResolver(TaskGiver taskGiver, CalculationTask calculationTask) {
2626
public void run() {
2727
Future<Optional<Integer>> task = taskGiver.getTaskAndReserve();
2828
while (true) {
29+
if(Thread.interrupted())
30+
return;
31+
2932
while(!task.isReady()){
3033
try {
3134
sleep(sleepTime);
@@ -48,6 +51,8 @@ public void run() {
4851
CalculationTaskIterator iterator = calculationTask.getFragmentOfTheTask(taskId);
4952

5053
while (iterator.hasNext()) {
54+
if(Thread.interrupted())
55+
return;
5156
if(observer.isReady())
5257
break;
5358
resultBuilder.performComputation(iterator.getNext());

src/main/java/pl/edu/agh/calculationp2p/state/UI/UIController.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,15 @@ public void run() {
3030
if (lowerOSName.contains("window")) {
3131
try {
3232
new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
33-
} catch (IOException | InterruptedException e) {
33+
} catch (IOException e) {
3434
Logger logger = LoggerFactory.getLogger("");
3535
logger.error(e.getMessage());
3636
}
37+
catch (InterruptedException e){
38+
Logger logger = LoggerFactory.getLogger("");
39+
logger.error(e.getMessage());
40+
return;
41+
}
3742
} else {
3843
System.out.print("\033[H\033[2J");
3944
System.out.flush();
@@ -44,6 +49,7 @@ public void run() {
4449
} catch (InterruptedException e) {
4550
Logger logger = LoggerFactory.getLogger("");
4651
logger.error(e.getMessage());
52+
return;
4753
}
4854

4955
}

0 commit comments

Comments
 (0)