コード例 #1
0
ファイル: HandlerManager.java プロジェクト: hjhill/vert.x
 public void addHandler(Handler<T> handler, DefaultContext context) {
   EventLoop worker = context.getEventLoop();
   availableWorkers.addWorker(worker);
   Handlers<T> handlers = new Handlers<T>();
   Handlers<T> prev = handlerMap.putIfAbsent(worker, handlers);
   if (prev != null) {
     handlers = prev;
   }
   handlers.addHandler(new HandlerHolder<>(context, handler));
   handlerCount++;
 }
コード例 #2
0
ファイル: HandlerManager.java プロジェクト: hjhill/vert.x
 public void removeHandler(Handler<T> handler, DefaultContext context) {
   EventLoop worker = context.getEventLoop();
   Handlers<T> handlers = handlerMap.get(worker);
   if (!handlers.removeHandler(new HandlerHolder<>(context, handler))) {
     throw new IllegalStateException("Can't find handler");
   }
   if (handlers.isEmpty()) {
     handlerMap.remove(worker);
   }
   handlerCount--;
   // Available workers does it's own reference counting -since workers can be shared across
   // different Handlers
   availableWorkers.removeWorker(worker);
 }