List of usage examples for com.google.common.util.concurrent MoreExecutors sameThreadExecutor
@Deprecated @GwtIncompatible("TODO") public static ListeningExecutorService sameThreadExecutor()
From source file:org.xtreemfs.foundation.flease.sim.FleaseSim.java
/** * @param args the command line arguments *//* ww w .j ava 2s. c om*/ public static void main(String[] args) { try { final int dmax = 500; final int leaseTimeout = 5000; final int numHosts = 10; final FleaseStage[] stages = new FleaseStage[numHosts]; final boolean useME = true; TimeSync.initializeLocal(50); final Communicator com = new Communicator(10, 100, 30000, 5, true, 0.2, 0.05); if (com.startAndWait() != Service.State.RUNNING) { LOG.error("Unable to start communicator", com.failureCause()); System.exit(2); } List<InetSocketAddress> allPorts = new ArrayList(numHosts); List<InetSocketAddress>[] acceptors = new List[numHosts]; MasterEpochHandlerInterface[] meHandlers = new MasterEpochHandlerInterface[numHosts]; final AtomicReference<Flease>[] leaseStates = new AtomicReference[numHosts]; for (int i = 0; i < numHosts; i++) { final int portNo = 1024 + i; final int myI = i; FleaseConfig cfg = new FleaseConfig(leaseTimeout, dmax, 500, new InetSocketAddress(portNo), "localhost:" + (1024 + i), 5, true, 0); leaseStates[i] = new AtomicReference<Flease>(Flease.EMPTY_LEASE); if (useME) { meHandlers[i] = new MasterEpochHandlerInterface() { long me = 0; public long getMasterEpoch() { return me; } @Override public void sendMasterEpoch(FleaseMessage response, Continuation callback) { response.setMasterEpochNumber(me); callback.processingFinished(); } @Override public void storeMasterEpoch(FleaseMessage request, Continuation callback) { me = request.getMasterEpochNumber(); callback.processingFinished(); } }; } stages[i] = new FleaseStage(cfg, "/tmp/xtreemfs-test", new FleaseMessageSenderInterface() { public void sendMessage(FleaseMessage message, InetSocketAddress recipient) { assert (message != null); LOG.debug("received message for delivery to port {}: {}", recipient.getPort(), message); message.setSender(new InetSocketAddress("localhost", portNo)); com.send(recipient.getPort(), message); } }, true, new FleaseViewChangeListenerInterface() { public void viewIdChangeEvent(ASCIIString cellId, int viewId) { } }, new FleaseStatusListener() { public void statusChanged(ASCIIString cellId, Flease lease) { synchronized (leaseStates) { leaseStates[myI].set(lease); } System.out.println("state change for " + portNo + ": " + lease.getLeaseHolder() + "/" + lease.getLeaseTimeout_ms()); } public void leaseFailed(ASCIIString cellId, FleaseException error) { System.out.println("lease failed: " + error); synchronized (leaseStates) { leaseStates[myI].set(Flease.EMPTY_LEASE); } //restart my cell } }, meHandlers[i]); stages[i].addListener(new Service.Listener() { @Override public void starting() { } @Override public void running() { } @Override public void stopping(Service.State from) { } @Override public void terminated(Service.State from) { } @Override public void failed(Service.State from, Throwable failure) { LOG.error("Failed service, from state: {} with exception {}", from, failure); System.exit(100); } }, MoreExecutors.sameThreadExecutor()); stages[i].start(); allPorts.add(new InetSocketAddress("localhost", 1024 + i)); com.openPort(1024 + i, stages[i]); } for (int i = 0; i < numHosts; i++) { final int portNo = 1024 + i; acceptors[i] = new ArrayList(numHosts - 1); for (InetSocketAddress ia : allPorts) { if (ia.getPort() != portNo) acceptors[i].add(ia); } stages[i].openCell(new ASCIIString("testcell"), acceptors[i], false); } //do something do { final AtomicBoolean sync = new AtomicBoolean(); final AtomicReference<ASCIIString> ref = new AtomicReference(); Thread.sleep(100); System.out.print("checking local states: "); ASCIIString leaseHolder = null; int leaseInstanceId = 0; synchronized (leaseStates) { for (int i = 0; i < numHosts; i++) { if (!leaseStates[i].get().isEmptyLease()) { if (leaseHolder == null) { leaseHolder = leaseStates[i].get().getLeaseHolder(); } else { if (!leaseHolder.equals(leaseStates[i].get().getLeaseHolder())) { com.stop(); System.out.println("INVARIANT VIOLATED!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); System.out.println("\n\n"); System.out.println("got lease for: " + leaseHolder); System.out.println( "but host " + i + " learned " + leaseStates[i].get().getLeaseHolder()); for (int j = 0; j < numHosts; j++) { System.out.println( stages[j]._dump_acceptor_state(new ASCIIString("testcell"))); System.out.println("signalled result: " + leaseStates[j].get()); System.out.println(" valid: " + leaseStates[j].get().isValid()); } System.exit(2); } else { System.out.print("+"); } } } else { System.out.print("o"); } } } System.out.println(""); final int host = (int) (Math.random() * numHosts); stages[host].closeCell(new ASCIIString("testcell"), false); //make sure that cells also time out some times (requires a wait > 2*lease_timeout) final int waitTime = (int) (Math.random() * (leaseTimeout * 2 + 1000)); System.out.println("waiting for " + waitTime + "ms"); Thread.sleep(waitTime); stages[host].openCell(new ASCIIString("testcell"), acceptors[host], false); } while (true); /* for (int i = 0; i < numHosts; i++) { stages[i].shutdown(); } com.shutdown(); */ } catch (Exception ex) { ex.printStackTrace(); System.exit(1); } }
From source file:com.skcraft.plume.common.util.concurrent.Deferreds.java
/** * Make a new Deferred from the given future, using the same thread * executor as the default executor./*from ww w. j a v a2 s. c o m*/ * * @param future The future * @param <V> The type returned by the future * @return A new Deferred */ public static <V> Deferred<V> makeDeferred(ListenableFuture<V> future) { return makeDeferred(future, MoreExecutors.sameThreadExecutor()); }
From source file:com.github.tempora.concurrent.BackgroundTaskExecutor.java
private static <T> void execute(final BackgroundTask<T> task, boolean wait) { final ListeningExecutorService service = MoreExecutors.listeningDecorator( wait ? MoreExecutors.sameThreadExecutor() : Executors.newSingleThreadExecutor()); try {/*from w w w .j a v a2 s . c om*/ if (task instanceof LifecycleAware) { ((LifecycleAware) task).beforeCall(); } final ListenableFuture<T> resultFuture = service.submit(task); task.relatedFuture = resultFuture; Futures.addCallback(resultFuture, task); if (task instanceof LifecycleAware) { Futures.addCallback(resultFuture, new FutureCallback<T>() { @Override public void onSuccess(T result) { ((LifecycleAware) task).afterCall(); } @Override public void onFailure(Throwable t) { ((LifecycleAware) task).afterCall(); } }); } if (wait) { Futures.getUnchecked(resultFuture); } } finally { service.shutdown(); } }
From source file:com.facebook.buck.event.BuckEventBusFactory.java
/** * This registers an {@link ErrorListener}. This is helpful when errors are logged during tests * that would not otherwise be noticed./*from w w w . j a v a 2 s . c o m*/ */ public static BuckEventBus newInstance(Clock clock, BuildId buildId) { BuckEventBus buckEventBus = new BuckEventBus(clock, MoreExecutors.sameThreadExecutor(), buildId, BuckEventBus.DEFAULT_SHUTDOWN_TIMEOUT_MS); buckEventBus.register(new ErrorListener()); return buckEventBus; }
From source file:com.dazito.retroeventbus.EventQueueExecutor.java
@Override public void execute(Runnable runnable) { switch (executorType) { case SWING_MAIN_THREAD: SwingUtilities.invokeLater(runnable); break;// ww w . j av a 2 s . c o m case POSTING_THREAD: MoreExecutors.sameThreadExecutor().submit(runnable); break; case NEW_THREAD: new Thread(runnable).start(); break; } }
From source file:org.robotninjas.concurrent.FluentDecorator.java
FluentDecorator(ListenableFuture<V> future) {
this(future, MoreExecutors.sameThreadExecutor());
}
From source file:fr.inria.eventcloud.delayers.actions.Action.java
public Action(SemanticCanOverlay overlay, int threadPoolSize) { this.overlay = overlay; if (threadPoolSize == 0) { this.threadPool = MoreExecutors.sameThreadExecutor(); } else {//w ww . j ava 2 s .c o m this.threadPool = Executors.newFixedThreadPool(threadPoolSize, new ThreadFactory() { private int counter = 0; @Override public Thread newThread(Runnable r) { return new Thread(r, this.getClass().getSimpleName() + " Thread(" + (this.counter++) + ")"); } }); } }
From source file:org.apache.curator.framework.listen.ListenerContainer.java
@Override public void addListener(T listener) { addListener(listener, MoreExecutors.sameThreadExecutor()); }
From source file:com.facebook.buck.rules.FakeBuildContext.java
/** * User still needs to invoke {@link BuildContext.Builder#setDependencyGraph(DependencyGraph)} and * {@link BuildContext.Builder#setJavaPackageFinder(JavaPackageFinder)} before the * {@link BuildContext.Builder#build()} method of the builder can be invoked. * @param projectFilesystem for the {@link BuildContext} and for the {@link ExecutionContext} that * is passed to the {@link DefaultStepRunner} for the {@link BuildContext}. *///from w w w . j av a 2 s . c om public static BuildContext.Builder newBuilder(ProjectFilesystem projectFilesystem) { ExecutionContext executionContext = TestExecutionContext.newBuilder() .setProjectFilesystem(projectFilesystem).build(); return BuildContext.builder() .setStepRunner(new DefaultStepRunner(executionContext, MoreExecutors.sameThreadExecutor())) .setProjectFilesystem(projectFilesystem).setArtifactCache(new NoopArtifactCache()) .setEventBus(BuckEventBusFactory.newInstance()) .setBuildDependencies(BuildDependencies.FIRST_ORDER_ONLY) .setAndroidBootclasspathForAndroidPlatformTarget(Optional.<AndroidPlatformTarget>absent()); }
From source file:org.opendaylight.controller.sal.dom.broker.DataBrokerImpl.java
public DataBrokerImpl() { setDataReadRouter(new DataReaderRouter()); setExecutor(MoreExecutors.sameThreadExecutor()); }