diff --git a/src/main/java/org/apposed/appose/Service.java b/src/main/java/org/apposed/appose/Service.java index 131e1d9..1673999 100644 --- a/src/main/java/org/apposed/appose/Service.java +++ b/src/main/java/org/apposed/appose/Service.java @@ -215,14 +215,7 @@ private void monitorLoop() { if (taskCount > 0) debugService(""); // Notify any remaining tasks about the process crash. - for (Task task : tasks.values()) { - TaskEvent event = new TaskEvent(task, ResponseType.CRASH); - task.status = TaskStatus.CRASHED; - task.listeners.forEach(l -> l.accept(event)); - synchronized (task) { - task.notifyAll(); - } - } + tasks.values().forEach(Task::crash); tasks.clear(); } @@ -385,6 +378,15 @@ private void handle(Map response) { } } + private void crash() { + TaskEvent event = new TaskEvent(this, ResponseType.CRASH); + status = TaskStatus.CRASHED; + listeners.forEach(l -> l.accept(event)); + synchronized (this) { + notifyAll(); + } + } + @Override public String toString() { return String.format("uuid=%s, status=%s, message=%s, current=%d, maximum=%d, error=%s",