コード例 #1
0
  /*
   * (non-Javadoc)
   *
   * @see poke.server.ChannelQueue#shutdown(boolean)
   */
  @Override
  public void shutdown(boolean hard) {
    logger.info("server is shutting down");

    channel = null;

    if (hard) {
      // drain queues, don't allow graceful completion
      inbound.clear();
      outbound.clear();
    }

    if (iworker != null) {
      iworker.forever = false;
      if (iworker.getState() == State.BLOCKED || iworker.getState() == State.WAITING)
        iworker.interrupt();
      iworker = null;
    }

    if (oworker != null) {
      oworker.forever = false;
      if (oworker.getState() == State.BLOCKED || oworker.getState() == State.WAITING)
        oworker.interrupt();
      oworker = null;
    }
  }
コード例 #2
0
  protected void init() {
    inbound = new LinkedBlockingDeque<com.google.protobuf.GeneratedMessage>();
    outbound = new LinkedBlockingDeque<com.google.protobuf.GeneratedMessage>();

    iworker = new InboundAppWorker(tgroup, 1, this);
    iworker.start();

    oworker = new OutboundAppWorker(tgroup, 1, this);
    oworker.start();

    // let the handler manage the queue's shutdown
    // register listener to receive closing of channel
    // channel.getCloseFuture().addListener(new CloseListener(this));
  }