register() — netty Function Reference
Architecture documentation for the register() function in AbstractChannel.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 7ac63885_60f4_64a0_2bb5_20c6a0c6de73["register()"] 330d05c9_85ca_2e57_92f5_e996fb442b81["AbstractUnsafe"] 7ac63885_60f4_64a0_2bb5_20c6a0c6de73 -->|defined in| 330d05c9_85ca_2e57_92f5_e996fb442b81 f8eefee7_95b2_a426_9c6e_d60d6c0a3f39["isRegistered()"] 7ac63885_60f4_64a0_2bb5_20c6a0c6de73 -->|calls| f8eefee7_95b2_a426_9c6e_d60d6c0a3f39 429a05ba_230a_8cb2_68e5_1fcffeb6f368["isCompatible()"] 7ac63885_60f4_64a0_2bb5_20c6a0c6de73 -->|calls| 429a05ba_230a_8cb2_68e5_1fcffeb6f368 3636c0b5_4718_d99f_6eb8_ab7c7fc1bcc7["register0()"] 7ac63885_60f4_64a0_2bb5_20c6a0c6de73 -->|calls| 3636c0b5_4718_d99f_6eb8_ab7c7fc1bcc7 17397289_ac28_713d_e04b_8903499df5fd["closeForcibly()"] 7ac63885_60f4_64a0_2bb5_20c6a0c6de73 -->|calls| 17397289_ac28_713d_e04b_8903499df5fd 4b71a6cb_9d50_676e_bce9_aabd595de051["setClosed()"] 7ac63885_60f4_64a0_2bb5_20c6a0c6de73 -->|calls| 4b71a6cb_9d50_676e_bce9_aabd595de051 09594916_b369_0dde_fab6_d2f3c2bd81b1["safeSetFailure()"] 7ac63885_60f4_64a0_2bb5_20c6a0c6de73 -->|calls| 09594916_b369_0dde_fab6_d2f3c2bd81b1 style 7ac63885_60f4_64a0_2bb5_20c6a0c6de73 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
transport/src/main/java/io/netty/channel/AbstractChannel.java lines 323–364
@Override
public final void register(EventLoop eventLoop, final ChannelPromise promise) {
ObjectUtil.checkNotNull(eventLoop, "eventLoop");
if (isRegistered()) {
promise.setFailure(new IllegalStateException("registered to an event loop already"));
return;
}
if (!isCompatible(eventLoop)) {
promise.setFailure(
new IllegalStateException("incompatible event loop type: " + eventLoop.getClass().getName()));
return;
}
AbstractChannel.this.eventLoop = eventLoop;
// Clear any cached executors from prior event loop registrations.
AbstractChannelHandlerContext context = pipeline.tail;
do {
context.contextExecutor = null;
context = context.prev;
} while (context != null);
if (eventLoop.inEventLoop()) {
register0(promise);
} else {
try {
eventLoop.execute(new Runnable() {
@Override
public void run() {
register0(promise);
}
});
} catch (Throwable t) {
logger.warn(
"Force-closing a channel whose registration task was not accepted by an event loop: {}",
AbstractChannel.this, t);
closeForcibly();
closeFuture.setClosed();
safeSetFailure(promise, t);
}
}
}
Domain
Subdomains
Source
Frequently Asked Questions
What does register() do?
register() is a function in the netty codebase, defined in transport/src/main/java/io/netty/channel/AbstractChannel.java.
Where is register() defined?
register() is defined in transport/src/main/java/io/netty/channel/AbstractChannel.java at line 323.
What does register() call?
register() calls 6 function(s): closeForcibly, isCompatible, isRegistered, register0, safeSetFailure, setClosed.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free