handleWritableStreams() — netty Function Reference
Architecture documentation for the handleWritableStreams() function in QuicheQuicChannel.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 800fad5b_da38_9e46_d584_579345b38410["handleWritableStreams()"] 3c534d05_bb5b_c991_5e03_7ec94e739cf7["QuicheQuicChannel"] 800fad5b_da38_9e46_d584_579345b38410 -->|defined in| 3c534d05_bb5b_c991_5e03_7ec94e739cf7 94df982c_642b_1c3b_8e52_0291be3430e7["writable()"] 94df982c_642b_1c3b_8e52_0291be3430e7 -->|calls| 800fad5b_da38_9e46_d584_579345b38410 4cae79d3_92ee_29bb_03d0_6a120cc97031["processReceived()"] 4cae79d3_92ee_29bb_03d0_6a120cc97031 -->|calls| 800fad5b_da38_9e46_d584_579345b38410 94df982c_642b_1c3b_8e52_0291be3430e7["writable()"] 800fad5b_da38_9e46_d584_579345b38410 -->|calls| 94df982c_642b_1c3b_8e52_0291be3430e7 91ad4e75_1871_05d1_0e83_42ab72e107e6["growIfNeeded()"] 800fad5b_da38_9e46_d584_579345b38410 -->|calls| 91ad4e75_1871_05d1_0e83_42ab72e107e6 style 800fad5b_da38_9e46_d584_579345b38410 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
codec-classes-quic/src/main/java/io/netty/handler/codec/quic/QuicheQuicChannel.java lines 1078–1124
private boolean handleWritableStreams(QuicheQuicConnection conn) {
if (conn.isFreed()) {
return false;
}
reantranceGuard |= IN_HANDLE_WRITABLE_STREAMS;
try {
long connAddr = conn.address();
boolean mayNeedWrite = false;
if (Quiche.quiche_conn_is_established(connAddr) ||
Quiche.quiche_conn_is_in_early_data(connAddr)) {
long writableIterator = Quiche.quiche_conn_writable(connAddr);
int totalWritable = 0;
try {
// For streams we always process all streams when at least on read was requested.
for (;;) {
int writable = Quiche.quiche_stream_iter_next(
writableIterator, writableStreams);
for (int i = 0; i < writable; i++) {
long streamId = writableStreams[i];
QuicheQuicStreamChannel streamChannel = streams.get(streamId);
if (streamChannel != null) {
long capacity = Quiche.quiche_conn_stream_capacity(connAddr, streamId);
if (streamChannel.writable(capacity)) {
mayNeedWrite = true;
}
}
}
if (writable > 0) {
totalWritable += writable;
}
if (writable < writableStreams.length) {
// We did handle all writable streams.
break;
}
}
} finally {
Quiche.quiche_stream_iter_free(writableIterator);
}
writableStreams = growIfNeeded(writableStreams, totalWritable);
}
return mayNeedWrite;
} finally {
reantranceGuard &= ~IN_HANDLE_WRITABLE_STREAMS;
}
}
Domain
Subdomains
Calls
Called By
Source
Frequently Asked Questions
What does handleWritableStreams() do?
handleWritableStreams() is a function in the netty codebase, defined in codec-classes-quic/src/main/java/io/netty/handler/codec/quic/QuicheQuicChannel.java.
Where is handleWritableStreams() defined?
handleWritableStreams() is defined in codec-classes-quic/src/main/java/io/netty/handler/codec/quic/QuicheQuicChannel.java at line 1078.
What does handleWritableStreams() call?
handleWritableStreams() calls 2 function(s): growIfNeeded, writable.
What calls handleWritableStreams()?
handleWritableStreams() is called by 2 function(s): processReceived, writable.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free