本文整理了Java中io.vertx.core.Context.runOnContext()
方法的一些代码示例,展示了Context.runOnContext()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Context.runOnContext()
方法的具体详情如下:
包路径:io.vertx.core.Context
类名称:Context
方法名:runOnContext
[英]Run the specified action asynchronously on the same context, some time after the current execution has completed.
[中]在当前执行完成一段时间后,在同一上下文上异步运行指定的操作。
代码示例来源:origin: eclipse-vertx/vert.x
private <T> void reportResult(Context context, Handler<AsyncResult<T>> completionHandler, AsyncResult<T> result) {
context.runOnContext(v -> {
try {
completionHandler.handle(result);
} catch (Throwable t) {
log.error("Failure in calling handler", t);
throw t;
}
});
}
代码示例来源:origin: eclipse-vertx/vert.x
@Override
public void get(Handler<AsyncResult<Long>> resultHandler) {
Objects.requireNonNull(resultHandler, "resultHandler");
Context context = vertx.getOrCreateContext();
context.runOnContext(v -> resultHandler.handle(Future.succeededFuture(counter.get())));
}
代码示例来源:origin: eclipse-vertx/vert.x
@Override
public void getAndAdd(long value, Handler<AsyncResult<Long>> resultHandler) {
Objects.requireNonNull(resultHandler, "resultHandler");
Context context = vertx.getOrCreateContext();
context.runOnContext(v -> resultHandler.handle(Future.succeededFuture(counter.getAndAdd(value))));
}
代码示例来源:origin: eclipse-vertx/vert.x
@Override
public void decrementAndGet(Handler<AsyncResult<Long>> resultHandler) {
Objects.requireNonNull(resultHandler, "resultHandler");
Context context = vertx.getOrCreateContext();
context.runOnContext(v -> resultHandler.handle(Future.succeededFuture(counter.decrementAndGet())));
}
代码示例来源:origin: eclipse-vertx/vert.x
@Override
public void addAndGet(long value, Handler<AsyncResult<Long>> resultHandler) {
Objects.requireNonNull(resultHandler, "resultHandler");
Context context = vertx.getOrCreateContext();
context.runOnContext(v -> resultHandler.handle(Future.succeededFuture(counter.addAndGet(value))));
}
代码示例来源:origin: eclipse-vertx/vert.x
@Override
public synchronized MessageConsumer<T> endHandler(Handler<Void> endHandler) {
if (endHandler != null) {
// We should use the HandlerHolder context to properly do this (needs small refactoring)
Context endCtx = vertx.getOrCreateContext();
this.endHandler = v1 -> endCtx.runOnContext(v2 -> endHandler.handle(null));
} else {
this.endHandler = null;
}
return this;
}
代码示例来源:origin: eclipse-vertx/vert.x
@Override
public void incrementAndGet(Handler<AsyncResult<Long>> resultHandler) {
Objects.requireNonNull(resultHandler, "resultHandler");
Context context = vertx.getOrCreateContext();
context.runOnContext(v -> resultHandler.handle(Future.succeededFuture(counter.incrementAndGet())));
}
代码示例来源:origin: eclipse-vertx/vert.x
@Override
public void getAndIncrement(Handler<AsyncResult<Long>> resultHandler) {
Objects.requireNonNull(resultHandler, "resultHandler");
Context context = vertx.getOrCreateContext();
context.runOnContext(v -> resultHandler.handle(Future.succeededFuture(counter.getAndIncrement())));
}
代码示例来源:origin: eclipse-vertx/vert.x
@Override
public void compareAndSet(long expected, long value, Handler<AsyncResult<Boolean>> resultHandler) {
Objects.requireNonNull(resultHandler, "resultHandler");
Context context = vertx.getOrCreateContext();
context.runOnContext(v -> resultHandler.handle(Future.succeededFuture(counter.compareAndSet(expected, value))));
}
}
代码示例来源:origin: eclipse-vertx/vert.x
private void checkCallDrainHandler() {
if (overflow) {
overflow = false;
context.runOnContext(v -> {
Handler<Void> drainHandler;
synchronized (InboundBuffer.this) {
drainHandler = this.drainHandler;
}
handleEvent(drainHandler, null);
});
}
}
代码示例来源:origin: eclipse-vertx/vert.x
void acquireLock() {
if (status.compareAndSet(Status.WAITING, Status.ACQUIRED)) {
if (timerId != null) {
context.owner().cancelTimer(timerId);
}
context.runOnContext(v -> handler.handle(Future.succeededFuture(new AsyncLock(lockName))));
} else {
context.runOnContext(v -> nextWaiter(lockName));
}
}
}
代码示例来源:origin: eclipse-vertx/vert.x
private void getLocalCounter(String name, Handler<AsyncResult<Counter>> resultHandler) {
Counter counter = localCounters.computeIfAbsent(name, n -> new AsynchronousCounter(vertx));
Context context = vertx.getOrCreateContext();
context.runOnContext(v -> resultHandler.handle(Future.succeededFuture(counter)));
}
代码示例来源:origin: eclipse-vertx/vert.x
protected void startServer(Context context, HttpServer server) throws Exception {
CountDownLatch latch = new CountDownLatch(1);
context.runOnContext(v -> {
server.listen(onSuccess(s -> latch.countDown()));
});
awaitLatch(latch);
}
代码示例来源:origin: eclipse-vertx/vert.x
@Override
public void getCounter(String name, Handler<AsyncResult<Counter>> resultHandler) {
AtomicLong counter = new AtomicLong();
AtomicLong prev = counters.putIfAbsent(name, counter);
if (prev != null) {
counter = prev;
}
AtomicLong theCounter = counter;
Context context = vertx.getOrCreateContext();
context.runOnContext(v -> resultHandler.handle(Future.succeededFuture(new AsynchronousCounter(vertx, theCounter))));
}
代码示例来源:origin: eclipse-vertx/vert.x
protected void startServer(SocketAddress remoteAddress, Context context, NetServer server) throws Exception {
CountDownLatch latch = new CountDownLatch(1);
context.runOnContext(v -> {
server.listen(remoteAddress, onSuccess(s -> latch.countDown()));
});
awaitLatch(latch);
}
代码示例来源:origin: eclipse-vertx/vert.x
@Override
public void start() throws Exception {
thread.set(Thread.currentThread());
assertTrue(Context.isOnVertxThread());
assertTrue(Context.isOnWorkerThread());
assertFalse(Context.isOnEventLoopThread());
assertTrue(Thread.currentThread().getName().startsWith(poolName + "-"));
context.runOnContext(v -> {
vertx.undeploy(context.deploymentID());
});
}
}, new DeploymentOptions().setWorker(true).setWorkerPoolName(poolName), onSuccess(deployment::set));
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testExecuteBlockingThreadSyncComplete() throws Exception {
Context context = vertx.getOrCreateContext();
context.<Void>runOnContext(v -> {
Thread expected = Thread.currentThread();
context.executeBlocking(Future::complete, r -> {
assertSame(expected, Thread.currentThread());
testComplete();
});
});
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testDefaultContextExceptionHandler() {
RuntimeException failure = new RuntimeException();
Context context = vertx.getOrCreateContext();
vertx.exceptionHandler(err -> {
assertSame(failure, err);
testComplete();
});
context.runOnContext(v -> {
throw failure;
});
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testHighWaterMark() {
context.runOnContext(v -> {
buffer = new InboundBuffer<>(context, 4L);
buffer.pause();
fill();
assertEquals(5, sequence.get());
testComplete();
});
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testGettingContextContextUnderContextAnotherInstanceShouldReturnDifferentContext() throws Exception {
Vertx other = vertx();
Context context = vertx.getOrCreateContext();
context.runOnContext(v -> {
Context otherContext = other.getOrCreateContext();
assertNotSame(otherContext, context);
testComplete();
});
await();
}
内容来源于网络,如有侵权,请联系作者删除!