ImmediateEventExecutor Class — netty Architecture
Architecture documentation for the ImmediateEventExecutor class in ImmediateEventExecutor.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD e920a029_e6b0_2304_5fdf_97b074b8a950["ImmediateEventExecutor"] dc8ea9de_80b1_ca2d_d3b5_1c0f00ad8ce6["ImmediateEventExecutor.java"] e920a029_e6b0_2304_5fdf_97b074b8a950 -->|defined in| dc8ea9de_80b1_ca2d_d3b5_1c0f00ad8ce6 a2ca39a0_e70d_f21d_09ed_bea3a3055d7b["ImmediateEventExecutor()"] e920a029_e6b0_2304_5fdf_97b074b8a950 -->|method| a2ca39a0_e70d_f21d_09ed_bea3a3055d7b 09554e56_7dbb_3445_bc5a_1d804be06853["inEventLoop()"] e920a029_e6b0_2304_5fdf_97b074b8a950 -->|method| 09554e56_7dbb_3445_bc5a_1d804be06853 329ada3b_514a_f875_7c27_4f1279cef2c0["shutdownGracefully()"] e920a029_e6b0_2304_5fdf_97b074b8a950 -->|method| 329ada3b_514a_f875_7c27_4f1279cef2c0 ff7b8ce0_621e_0c95_cc5e_939923399398["terminationFuture()"] e920a029_e6b0_2304_5fdf_97b074b8a950 -->|method| ff7b8ce0_621e_0c95_cc5e_939923399398 5510007f_8e57_c244_a218_bf8c28254edf["shutdown()"] e920a029_e6b0_2304_5fdf_97b074b8a950 -->|method| 5510007f_8e57_c244_a218_bf8c28254edf b8d3391e_7e31_e372_effc_9f4a443563b9["isShuttingDown()"] e920a029_e6b0_2304_5fdf_97b074b8a950 -->|method| b8d3391e_7e31_e372_effc_9f4a443563b9 1733ebe2_df62_d39f_6386_b8609fa5d6ab["isShutdown()"] e920a029_e6b0_2304_5fdf_97b074b8a950 -->|method| 1733ebe2_df62_d39f_6386_b8609fa5d6ab 6572cb20_c0c3_7383_edf0_7c66e1fbc248["isTerminated()"] e920a029_e6b0_2304_5fdf_97b074b8a950 -->|method| 6572cb20_c0c3_7383_edf0_7c66e1fbc248 1a104fb4_04c5_0ded_6b98_7666b6390f3a["awaitTermination()"] e920a029_e6b0_2304_5fdf_97b074b8a950 -->|method| 1a104fb4_04c5_0ded_6b98_7666b6390f3a 64b99185_12ad_70d8_77c2_6ad84bec4984["execute()"] e920a029_e6b0_2304_5fdf_97b074b8a950 -->|method| 64b99185_12ad_70d8_77c2_6ad84bec4984 74f0921e_c6a7_db67_07d1_215b068f745d["newPromise()"] e920a029_e6b0_2304_5fdf_97b074b8a950 -->|method| 74f0921e_c6a7_db67_07d1_215b068f745d 27b1c311_12a5_8cb6_3e6c_a0a5ad65b55d["newProgressivePromise()"] e920a029_e6b0_2304_5fdf_97b074b8a950 -->|method| 27b1c311_12a5_8cb6_3e6c_a0a5ad65b55d
Relationship Graph
Source Code
common/src/main/java/io/netty/util/concurrent/ImmediateEventExecutor.java lines 33–161
public final class ImmediateEventExecutor extends AbstractEventExecutor {
private static final InternalLogger logger = InternalLoggerFactory.getInstance(ImmediateEventExecutor.class);
public static final ImmediateEventExecutor INSTANCE = new ImmediateEventExecutor();
/**
* A Runnable will be queued if we are executing a Runnable. This is to prevent a {@link StackOverflowError}.
*/
private static final FastThreadLocal<Queue<Runnable>> DELAYED_RUNNABLES = new FastThreadLocal<Queue<Runnable>>() {
@Override
protected Queue<Runnable> initialValue() throws Exception {
return new ArrayDeque<Runnable>();
}
};
/**
* Set to {@code true} if we are executing a runnable.
*/
private static final FastThreadLocal<Boolean> RUNNING = new FastThreadLocal<Boolean>() {
@Override
protected Boolean initialValue() throws Exception {
return false;
}
};
private final Future<?> terminationFuture = new FailedFuture<Object>(
GlobalEventExecutor.INSTANCE, new UnsupportedOperationException());
private ImmediateEventExecutor() { }
@Override
public boolean inEventLoop() {
return true;
}
@Override
public boolean inEventLoop(Thread thread) {
return true;
}
@Override
public Future<?> shutdownGracefully(long quietPeriod, long timeout, TimeUnit unit) {
return terminationFuture();
}
@Override
public Future<?> terminationFuture() {
return terminationFuture;
}
@Override
@Deprecated
public void shutdown() { }
@Override
public boolean isShuttingDown() {
return false;
}
@Override
public boolean isShutdown() {
return false;
}
@Override
public boolean isTerminated() {
return false;
}
@Override
public boolean awaitTermination(long timeout, TimeUnit unit) {
return false;
}
@Override
public void execute(Runnable command) {
ObjectUtil.checkNotNull(command, "command");
if (!RUNNING.get()) {
RUNNING.set(true);
try {
command.run();
} catch (Throwable cause) {
logger.info("Throwable caught while executing Runnable {}", command, cause);
} finally {
Source
Frequently Asked Questions
What is the ImmediateEventExecutor class?
ImmediateEventExecutor is a class in the netty codebase, defined in common/src/main/java/io/netty/util/concurrent/ImmediateEventExecutor.java.
Where is ImmediateEventExecutor defined?
ImmediateEventExecutor is defined in common/src/main/java/io/netty/util/concurrent/ImmediateEventExecutor.java at line 33.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free