close() — netty Function Reference
Architecture documentation for the close() function in ChannelOutboundBuffer.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 8ef6f00a_5bc8_18eb_6487_6a2e90cfab2f["close()"] 509b1bc5_7cdc_9ee4_03d9_31eb2203d807["ChannelOutboundBuffer"] 8ef6f00a_5bc8_18eb_6487_6a2e90cfab2f -->|defined in| 509b1bc5_7cdc_9ee4_03d9_31eb2203d807 928bd697_ccc9_ee43_394e_d0dcda4f9909["isEmpty()"] 8ef6f00a_5bc8_18eb_6487_6a2e90cfab2f -->|calls| 928bd697_ccc9_ee43_394e_d0dcda4f9909 9442861d_ae43_c572_95ea_8e92ddbb709f["decrementPendingOutboundBytes()"] 8ef6f00a_5bc8_18eb_6487_6a2e90cfab2f -->|calls| 9442861d_ae43_c572_95ea_8e92ddbb709f 388cda2b_b8f5_fdd6_cc01_b98d77fd3613["safeFail()"] 8ef6f00a_5bc8_18eb_6487_6a2e90cfab2f -->|calls| 388cda2b_b8f5_fdd6_cc01_b98d77fd3613 99a6a55c_40f3_d958_c218_8834dd310e16["clearNioBuffers()"] 8ef6f00a_5bc8_18eb_6487_6a2e90cfab2f -->|calls| 99a6a55c_40f3_d958_c218_8834dd310e16 style 8ef6f00a_5bc8_18eb_6487_6a2e90cfab2f fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
transport/src/main/java/io/netty/channel/ChannelOutboundBuffer.java lines 699–738
void close(final Throwable cause, final boolean allowChannelOpen) {
if (inFail) {
channel.eventLoop().execute(new Runnable() {
@Override
public void run() {
close(cause, allowChannelOpen);
}
});
return;
}
inFail = true;
if (!allowChannelOpen && channel.isOpen()) {
throw new IllegalStateException("close() must be invoked after the channel is closed.");
}
if (!isEmpty()) {
throw new IllegalStateException("close() must be invoked after all flushed writes are handled.");
}
// Release all unflushed messages.
try {
Entry e = unflushedEntry;
while (e != null) {
// Just decrease; do not trigger any events via decrementPendingOutboundBytes()
int size = e.pendingSize;
TOTAL_PENDING_SIZE_UPDATER.addAndGet(this, -size);
if (!e.cancelled) {
ReferenceCountUtil.safeRelease(e.msg);
safeFail(e.promise, cause);
}
e = e.unguardedRecycleAndGetNext();
}
} finally {
inFail = false;
}
clearNioBuffers();
}
Domain
Subdomains
Source
Frequently Asked Questions
What does close() do?
close() is a function in the netty codebase, defined in transport/src/main/java/io/netty/channel/ChannelOutboundBuffer.java.
Where is close() defined?
close() is defined in transport/src/main/java/io/netty/channel/ChannelOutboundBuffer.java at line 699.
What does close() call?
close() calls 4 function(s): clearNioBuffers, decrementPendingOutboundBytes, isEmpty, safeFail.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free