Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2016-01-25 10:26:50 +0000
committerEike Stepper2016-01-25 10:26:50 +0000
commit45b55081f4200d675e18ec5cbd4a120b1b52bfe4 (patch)
tree3c3a876f1f7396f4e0ee9fbeba7cab05327f83d6 /plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent
parentbcc19d0a8cbbd2132f5bab85ecf04282ceef3fe6 (diff)
downloadcdo-45b55081f4200d675e18ec5cbd4a120b1b52bfe4.tar.gz
cdo-45b55081f4200d675e18ec5cbd4a120b1b52bfe4.tar.xz
cdo-45b55081f4200d675e18ec5cbd4a120b1b52bfe4.zip
[Releng] Factor getView(id) into CDOServerIndication
Diffstat (limited to 'plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent')
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent/ConcurrencyUtil.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent/ConcurrencyUtil.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent/ConcurrencyUtil.java
index 5a9905e821..89e21dfc26 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent/ConcurrencyUtil.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent/ConcurrencyUtil.java
@@ -12,6 +12,7 @@ package org.eclipse.net4j.util.concurrent;
import org.eclipse.net4j.util.container.IManagedContainer;
+import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
/**
@@ -86,4 +87,32 @@ public final class ConcurrencyUtil
return null;
}
+
+ /**
+ * @since 3.6
+ */
+ public static void execute(Object executor, Runnable runnable)
+ {
+ if (executor instanceof Executor)
+ {
+ ((Executor)executor).execute(runnable);
+ return;
+ }
+
+ ExecutorService executorService = getExecutorService(executor);
+ if (executorService == null && executor instanceof IManagedContainer)
+ {
+ executorService = getExecutorService((IManagedContainer)executor);
+ }
+
+ if (executorService != null)
+ {
+ executorService.execute(runnable);
+ return;
+ }
+
+ Thread thread = new Thread(runnable, runnable.getClass().getSimpleName());
+ thread.setDaemon(true);
+ thread.start();
+ }
}

Back to the top