diff options
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.java | 15 |
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()) |