Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/SignalProtocol.java')
-rw-r--r--plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/SignalProtocol.java15
1 files changed, 15 insertions, 0 deletions
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/SignalProtocol.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/SignalProtocol.java
index c78e8ca0f1..2277c1cfad 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/SignalProtocol.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/SignalProtocol.java
@@ -280,6 +280,21 @@ public class SignalProtocol<INFRA_STRUCTURE> extends Protocol<INFRA_STRUCTURE> i
}
@Override
+ protected void doBeforeDeactivate() throws Exception
+ {
+ synchronized (signals)
+ {
+ // Wait at most 10 seconds for running signals to finish
+ int waitMillis = 10 * 1000;
+ long stop = System.currentTimeMillis() + waitMillis;
+ while (!signals.isEmpty() && System.currentTimeMillis() < stop)
+ {
+ signals.wait(1000L);
+ }
+ }
+ }
+
+ @Override
protected void doDeactivate() throws Exception
{
for (Signal signal : getSignals())

Back to the top