deregister() — netty Function Reference
Architecture documentation for the deregister() function in QuicheQuicStreamChannel.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 9480cb89_9c96_28a9_4217_4c121000c348["deregister()"] 77188bb7_e7ad_de01_3b54_5bc50b9e2df1["QuicStreamChannelUnsafe"] 9480cb89_9c96_28a9_4217_4c121000c348 -->|defined in| 77188bb7_e7ad_de01_3b54_5bc50b9e2df1 1123715f_0f63_323f_9bab_77f6d3c50fff["close()"] 1123715f_0f63_323f_9bab_77f6d3c50fff -->|calls| 9480cb89_9c96_28a9_4217_4c121000c348 dcc85143_930d_6847_5c1d_18334644fce5["invokeLater()"] 9480cb89_9c96_28a9_4217_4c121000c348 -->|calls| dcc85143_930d_6847_5c1d_18334644fce5 1123715f_0f63_323f_9bab_77f6d3c50fff["close()"] 9480cb89_9c96_28a9_4217_4c121000c348 -->|calls| 1123715f_0f63_323f_9bab_77f6d3c50fff style 9480cb89_9c96_28a9_4217_4c121000c348 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
codec-classes-quic/src/main/java/io/netty/handler/codec/quic/QuicheQuicStreamChannel.java lines 582–616
private void deregister(final ChannelPromise promise, final boolean fireChannelInactive) {
assert eventLoop().inEventLoop();
if (!promise.setUncancellable()) {
return;
}
if (!registered) {
promise.trySuccess();
return;
}
// As a user may call deregister() from within any method while doing processing in the ChannelPipeline,
// we need to ensure we do the actual deregister operation later. This is needed as for example,
// we may be in the ByteToMessageDecoder.callDecode(...) method and so still try to do processing in
// the old EventLoop while the user already registered the Channel to a new EventLoop. Without delay,
// the deregister operation this could lead to have a handler invoked by different EventLoop and so
// threads.
//
// See:
// https://github.com/netty/netty/issues/4435
invokeLater(() -> {
if (fireChannelInactive) {
pipeline.fireChannelInactive();
}
// Some transports like local and AIO does not allow the deregistration of
// an open channel. Their doDeregister() calls close(). Consequently,
// close() calls deregister() again - no need to fire channelUnregistered, so check
// if it was registered.
if (registered) {
registered = false;
pipeline.fireChannelUnregistered();
}
promise.setSuccess();
});
}
Domain
Subdomains
Defined In
Calls
Called By
Source
Frequently Asked Questions
What does deregister() do?
deregister() is a function in the netty codebase, defined in codec-classes-quic/src/main/java/io/netty/handler/codec/quic/QuicheQuicStreamChannel.java.
Where is deregister() defined?
deregister() is defined in codec-classes-quic/src/main/java/io/netty/handler/codec/quic/QuicheQuicStreamChannel.java at line 582.
What does deregister() call?
deregister() calls 2 function(s): close, invokeLater.
What calls deregister()?
deregister() is called by 1 function(s): close.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free