private final void attachWriter(final AtmosphereResource r) {
final AtmosphereRequest request = r.getRequest();
AtmosphereResponse res = r.getResponse();
AsyncIOWriter writer = res.getAsyncIOWriter();
BlockingQueue<AtmosphereResource> queue = (BlockingQueue<AtmosphereResource>)
getContextValue(request, SUSPENDED_RESPONSE);
if (queue == null) {
queue = new LinkedBlockingQueue<AtmosphereResource>();
request.getSession().setAttribute(SUSPENDED_RESPONSE, queue);
}
if (AtmosphereInterceptorWriter.class.isAssignableFrom(writer.getClass())) {
// WebSocket already had one.
if (r.transport() != AtmosphereResource.TRANSPORT.WEBSOCKET) {
writer = new AtmosphereInterceptorWriter() {
@Override