@Override public void run() { channel.getSourceChannel().suspendReads(); } });
public void suspendReads() { synchronized (lock) { getSourceChannel().suspendReads(); } }
@Override public void suspendReads() { state &= ~FLAG_READS_RESUMED; if(!allAreSet(state, FLAG_WRITES_RESUMED | FLAG_WRITE_REQUIRES_READ)) { delegate.getSourceChannel().suspendReads(); } }
private void handleSelected(String selected) { if (selected.isEmpty()) { sslConnection.getSourceChannel().suspendReads(); fallback.handleEvent(sslConnection); return; } else { ALPNClientSelector.ALPNProtocol details = protocolMap.get(selected); if (details == null) { //should never happen sslConnection.getSourceChannel().suspendReads(); fallback.handleEvent(sslConnection); return; } else { sslConnection.getSourceChannel().suspendReads(); details.getSelected().handleEvent(sslConnection); } } } });
public void handleEvent(final ConduitStreamSourceChannel channel) { while (requestStateUpdater.get(this) != 0) { //if the CAS fails it is because another thread is in the process of changing state //we just immediately retry if (requestStateUpdater.compareAndSet(this, 1, 2)) { try { channel.suspendReads(); } finally { requestStateUpdater.set(this, 1); } return; } } handleEventWithNoRunningRequest(channel); }
/** * Suspend the receive of new frames via {@link #receive()} */ public synchronized void suspendReceives() { receivesSuspended = true; if (receiver == null) { if(Thread.currentThread() == channel.getIoThread()) { channel.getSourceChannel().suspendReads(); } else { channel.getIoThread().execute(new Runnable() { @Override public void run() { channel.getSourceChannel().suspendReads(); } }); } } }
delegate.getSourceChannel().suspendReads(); List<Runnable> tasks = new ArrayList<>(); Runnable t = engine.getDelegatedTask();
private void sendBadRequestAndClose(final StreamConnection connection, final Throwable exception) { UndertowLogger.REQUEST_IO_LOGGER.failedToParseRequest(exception); connection.getSourceChannel().suspendReads(); new StringWriteChannelListener(BAD_REQUEST) { @Override protected void writeDone(final StreamSinkChannel c) { super.writeDone(c); c.suspendWrites(); IoUtils.safeClose(connection); } @Override protected void handleError(StreamSinkChannel channel, IOException e) { IoUtils.safeClose(connection); } }.setup(connection.getSinkChannel()); }
private ReferenceCountedPooled allocateReferenceCountedBuffer() { if(maxQueuedBuffers > 0) { int expect; do { expect = outstandingBuffersUpdater.get(this); if (expect == maxQueuedBuffers) { synchronized (this) { //we need to re-read in a sync block, to prevent races expect = outstandingBuffersUpdater.get(this); if (expect == maxQueuedBuffers) { if(UndertowLogger.REQUEST_IO_LOGGER.isTraceEnabled()) { UndertowLogger.REQUEST_IO_LOGGER.tracef("Suspending reads on %s due to too many outstanding buffers", this); } channel.getSourceChannel().suspendReads(); return null; } } } } while (!outstandingBuffersUpdater.compareAndSet(this, expect, expect + 1)); } PooledByteBuffer buf = bufferPool.allocate(); return this.readData = new ReferenceCountedPooled(buf, 1, maxQueuedBuffers > 0 ? freeNotifier : null); }
handleSelected(selectedProtocol); } else if (read > 0 || handshakeDone.get()) { sslConnection.getSourceChannel().suspendReads(); fallback.handleEvent(sslConnection); return;
private void handleCPing() { state = new AjpRequestParseState(); final StreamConnection underlyingChannel = connection.getChannel(); underlyingChannel.getSourceChannel().suspendReads(); final ByteBuffer buffer = ByteBuffer.wrap(CPONG); int res;
readData = null; channel.getSourceChannel().suspendReads(); channel.getSourceChannel().shutdownReads(); return null;
delegate.getSourceChannel().suspendReads();
safeClose(connection); } else if (anyAreSet(state, UPGRADE_REQUESTED)) { connection.getSourceChannel().suspendReads(); currentRequest = null; pendingResponse = null;
if ((existing == null && connection.getOriginalSourceConduit().isReadShutdown()) || connection.getOriginalSinkConduit().isWriteShutdown()) { IoUtils.safeClose(connection); channel.suspendReads(); return; channel.suspendReads();
while (true) { if (connection.getOriginalSourceConduit().isReadShutdown() || connection.getOriginalSinkConduit().isWriteShutdown()) { channel.getSourceChannel().suspendReads(); channel.getSinkChannel().suspendWrites(); IoUtils.safeClose(connection); while (true) { if (connection.getOriginalSinkConduit().isWriteShutdown()) { channel.getSourceChannel().suspendReads(); channel.getSinkChannel().suspendWrites(); IoUtils.safeClose(connection); try { newRequest(); channel.getSourceChannel().suspendReads(); } finally { requestStateUpdater.set(this, 0);
receiveSetter = new ChannelListener.SimpleSetter<>(); channel.getSourceChannel().getReadSetter().set(null); channel.getSourceChannel().suspendReads();
sourceChannel.suspendReads();
@Override public void run() { channel.getSourceChannel().suspendReads(); } });
@Override public void run() { channel.getSourceChannel().suspendReads(); } });