/* * (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; } }
protected void init() { inbound = new LinkedBlockingDeque<com.google.protobuf.GeneratedMessage>(); outbound = new LinkedBlockingDeque<com.google.protobuf.GeneratedMessage>(); iworker = new InboundWorker(tgroup, 1, this); System.out.println("## Before start"); iworker.start(); System.out.println("####After start"); oworker = new OutboundWorker(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)); }