From 7bfab5eb9d92d77e54a7427edd50feee7225ee9e Mon Sep 17 00:00:00 2001 From: Michael Peter Christen Date: Tue, 2 Dec 2014 16:05:00 +0100 Subject: [PATCH] set Busy- and Blocking-Threads to daemon mode (they will now not prevent YaCy from termination if still running) --- source/net/yacy/kelondro/workflow/AbstractBlockingThread.java | 4 ++++ source/net/yacy/kelondro/workflow/AbstractBusyThread.java | 1 + source/net/yacy/kelondro/workflow/AbstractThread.java | 4 ++++ source/net/yacy/kelondro/workflow/InstantBlockingThread.java | 2 ++ 4 files changed, 11 insertions(+) diff --git a/source/net/yacy/kelondro/workflow/AbstractBlockingThread.java b/source/net/yacy/kelondro/workflow/AbstractBlockingThread.java index 38e0a957c..ccb4e756f 100644 --- a/source/net/yacy/kelondro/workflow/AbstractBlockingThread.java +++ b/source/net/yacy/kelondro/workflow/AbstractBlockingThread.java @@ -32,6 +32,10 @@ public abstract class AbstractBlockingThread extends Abst private WorkflowProcessor manager = null; private final static ConcurrentLog log = new ConcurrentLog("AbstractBlockingThread"); + public AbstractBlockingThread() { + super(); + } + @Override public void setManager(final WorkflowProcessor manager) { this.manager = manager; diff --git a/source/net/yacy/kelondro/workflow/AbstractBusyThread.java b/source/net/yacy/kelondro/workflow/AbstractBusyThread.java index 98f26062f..a8e3477ef 100644 --- a/source/net/yacy/kelondro/workflow/AbstractBusyThread.java +++ b/source/net/yacy/kelondro/workflow/AbstractBusyThread.java @@ -45,6 +45,7 @@ public abstract class AbstractBusyThread extends AbstractThread implements BusyT private long busySleep = Long.MIN_VALUE; public AbstractBusyThread(long idleSleep, long busySleep) { + super(); this.idleSleep = idleSleep; this.busySleep = busySleep; } diff --git a/source/net/yacy/kelondro/workflow/AbstractThread.java b/source/net/yacy/kelondro/workflow/AbstractThread.java index bea02e636..3a9274096 100644 --- a/source/net/yacy/kelondro/workflow/AbstractThread.java +++ b/source/net/yacy/kelondro/workflow/AbstractThread.java @@ -48,6 +48,10 @@ public abstract class AbstractThread extends Thread implements WorkflowThread { private String monitorURL = null; private long threadBlockTimestamp = System.currentTimeMillis(); + public AbstractThread() { + this.setDaemon(true); + } + protected final void announceThreadBlockApply() { // shall only be used, if a thread blocks for an important reason // like a socket connect and must renew the timestamp to correct diff --git a/source/net/yacy/kelondro/workflow/InstantBlockingThread.java b/source/net/yacy/kelondro/workflow/InstantBlockingThread.java index a01b046b5..03769955c 100644 --- a/source/net/yacy/kelondro/workflow/InstantBlockingThread.java +++ b/source/net/yacy/kelondro/workflow/InstantBlockingThread.java @@ -44,6 +44,8 @@ public class InstantBlockingThread extends AbstractBlocki private static final ConcurrentMap jobs = new ConcurrentHashMap(); public InstantBlockingThread(final WorkflowProcessor manager) { + super(); + // jobExec is the name of a method of the object 'env' that executes the one-step-run // jobCount is the name of a method that returns the size of the job