Skip to content

Commit d0dd37c

Browse files
committed
fix TaskMonitoring
1 parent b4f2523 commit d0dd37c

File tree

2 files changed

+780
-772
lines changed

2 files changed

+780
-772
lines changed

net.lecousin.core/src/main/java/net/lecousin/framework/concurrent/TaskMonitoring.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public final class TaskMonitoring {
2727

2828
static void start(ThreadFactory threadFactory) {
2929
monitor = new TaskMonitor();
30-
threadFactory.newThread(monitor);
30+
threadFactory.newThread(monitor).start();
3131
LCCore.get().toClose(monitor);
3232
}
3333

@@ -103,11 +103,19 @@ private static void check(TaskWorker worker) {
103103
long seconds = (now - start) / (1000000L * 1000);
104104
if (seconds < SECONDS_BEFORE_TO_PUT_TASK_ASIDE) return;
105105
if (seconds < SECONDS_BEFORE_KILL_TASK) {
106-
Threading.logger.warn("Task " + task + " is running since " + seconds + " seconds ! put it aside and start a new thread");
106+
StringBuilder s = new StringBuilder(1024);
107+
s.append("Task ").append(task).append(" is running since ").append(seconds)
108+
.append(" seconds ! put it aside and start a new thread, current stack:\r\n");
109+
DebugUtil.createStackTrace(s, worker.thread.getStackTrace());
110+
Threading.logger.warn(s.toString());
107111
worker.manager.putWorkerAside(worker);
108112
return;
109113
}
110-
Threading.logger.error("Task " + task + " is running since " + seconds + " seconds ! kill it.");
114+
StringBuilder s = new StringBuilder(1024);
115+
s.append("Task ").append(task).append(" is running since ").append(seconds)
116+
.append(" seconds ! kill it! current stack:\r\n");
117+
DebugUtil.createStackTrace(s, worker.thread.getStackTrace());
118+
Threading.logger.error(s.toString());
111119
worker.manager.killWorker(worker);
112120
}
113121

0 commit comments

Comments
 (0)