public NaRPCFuture<R,T> issueRequest(R request, T response) throws IOException { ByteBuffer buffer = getBuffer(); long ticket = sequencer.getAndIncrement(); makeMessage(ticket, request, buffer); NaRPCFuture<R,T> future = new NaRPCFuture<R,T>(this, request, response, ticket); pendingRPCs.put(ticket, future); while(!tryTransmitting(buffer)){ } putBuffer(buffer); return future; }