recycledProcessors.clear();
}
+ /**
+ * Expected to be used by the handler once the processor is no longer
+ * required.
+ */
+ public void release(SocketWrapper<Long> socket,
+ AjpAprProcessor processor, boolean isSocketClosing) {
+ processor.recycle(isSocketClosing);
+ recycledProcessors.offer(processor);
+ }
+
+
@Override
public SocketState process(SocketWrapper<Long> socket,
SocketStatus status) {
} else if (state == SocketState.OPEN){
// In keep-alive but between requests. OK to recycle
// processor. Continue to poll for the next request.
- processor.recycle(false);
- recycledProcessors.offer(processor);
+ release(socket, processor, false);
((AprEndpoint)proto.endpoint).getPoller().add(
socket.getSocket().longValue());
} else {
- processor.recycle(true);
- recycledProcessors.offer(processor);
+ // Connection closed. OK to recycle the processor.
+ release(socket, processor, true);
}
return state;
} catch(java.net.SocketException e) {
// less-than-verbose logs.
log.error(sm.getString("ajpprotocol.proto.error"), e);
}
- processor.recycle(true);
- recycledProcessors.offer(processor);
+ release(socket, processor, true);
return SocketState.CLOSED;
}
public void recycle() {
recycledProcessors.clear();
}
-
+
+ /**
+ * Expected to be used by the handler once the processor is no longer
+ * required.
+ */
+ public void release(SocketWrapper<Socket> socket,
+ AjpProcessor processor, boolean isSocketClosing) {
+ processor.recycle(isSocketClosing);
+ recycledProcessors.offer(processor);
+ }
+
+
@Override
public SocketState process(SocketWrapper<Socket> socket,
SocketStatus status) {
} else if (state == SocketState.OPEN){
// In keep-alive but between requests. OK to recycle
// processor. Continue to poll for the next request.
- processor.recycle(false);
- recycledProcessors.offer(processor);
+ release(socket, processor, false);
} else {
- processor.recycle(true);
- recycledProcessors.offer(processor);
+ // Connection closed. OK to recycle the processor.
+ release(socket, processor, true);
}
return state;
} catch(java.net.SocketException e) {
// less-than-verbose logs.
log.error(sm.getString("ajpprotocol.proto.error"), e);
}
- processor.recycle(true);
- recycledProcessors.offer(processor);
+ release(socket, processor, true);
return SocketState.CLOSED;
}