public boolean postPacket(Packet packet, ReplyHandler handler) { boolean accepted = false; boolean enableWrite = false; synchronized (this) { if (state <= CONNECTED) { enableWrite = (writeWork == 0 && state == CONNECTED); queue.enqueue(packet); writeWork++; accepted = true; if (handler != null) { replyMap.put(handler.key(), handler); } } } if (enableWrite) { parent.enableWrite(this); } return accepted; }