SingleThreadEventLoop Class — netty Architecture
Architecture documentation for the SingleThreadEventLoop class in SingleThreadEventLoop.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 3fb15592_0f84_26a5_bd86_83d549151a91["SingleThreadEventLoop"] 13def215_9da0_6bb5_ed12_18382d6541ae["SingleThreadEventLoop.java"] 3fb15592_0f84_26a5_bd86_83d549151a91 -->|defined in| 13def215_9da0_6bb5_ed12_18382d6541ae 396e5ac0_5529_2241_2d6b_8f27c5876fd9["SingleThreadEventLoop()"] 3fb15592_0f84_26a5_bd86_83d549151a91 -->|method| 396e5ac0_5529_2241_2d6b_8f27c5876fd9 3aebd593_9be0_e8b0_a8b8_2953b844ae80["EventLoopGroup()"] 3fb15592_0f84_26a5_bd86_83d549151a91 -->|method| 3aebd593_9be0_e8b0_a8b8_2953b844ae80 6c654c81_003e_bf56_e2d4_7a954df743fb["EventLoop()"] 3fb15592_0f84_26a5_bd86_83d549151a91 -->|method| 6c654c81_003e_bf56_e2d4_7a954df743fb 2988249d_3ca5_887b_6aa9_495869107fca["ChannelFuture()"] 3fb15592_0f84_26a5_bd86_83d549151a91 -->|method| 2988249d_3ca5_887b_6aa9_495869107fca 96931bf5_b5cd_29da_232a_2b229b9652c0["executeAfterEventLoopIteration()"] 3fb15592_0f84_26a5_bd86_83d549151a91 -->|method| 96931bf5_b5cd_29da_232a_2b229b9652c0 ce686638_8761_21f8_77a4_9b90fc24a182["removeAfterEventLoopIterationTask()"] 3fb15592_0f84_26a5_bd86_83d549151a91 -->|method| ce686638_8761_21f8_77a4_9b90fc24a182 bd3e9395_e6a9_5a40_3165_fa55d70053ba["afterRunningAllTasks()"] 3fb15592_0f84_26a5_bd86_83d549151a91 -->|method| bd3e9395_e6a9_5a40_3165_fa55d70053ba 45ce9155_37ae_7e91_9766_4ba282c88347["hasTasks()"] 3fb15592_0f84_26a5_bd86_83d549151a91 -->|method| 45ce9155_37ae_7e91_9766_4ba282c88347 996303d9_ac63_7c94_5b1f_0edb6a5e11c9["pendingTasks()"] 3fb15592_0f84_26a5_bd86_83d549151a91 -->|method| 996303d9_ac63_7c94_5b1f_0edb6a5e11c9 f52baf43_3f22_2a7f_3c4d_167855d4052a["registeredChannels()"] 3fb15592_0f84_26a5_bd86_83d549151a91 -->|method| f52baf43_3f22_2a7f_3c4d_167855d4052a d1c9adaa_0fa5_f64a_1b6d_7751eea8f65e["registeredChannelsIterator()"] 3fb15592_0f84_26a5_bd86_83d549151a91 -->|method| d1c9adaa_0fa5_f64a_1b6d_7751eea8f65e
Relationship Graph
Source Code
transport/src/main/java/io/netty/channel/SingleThreadEventLoop.java lines 34–245
public abstract class SingleThreadEventLoop extends SingleThreadEventExecutor implements EventLoop {
protected static final int DEFAULT_MAX_PENDING_TASKS = Math.max(16,
SystemPropertyUtil.getInt("io.netty.eventLoop.maxPendingTasks", Integer.MAX_VALUE));
private final Queue<Runnable> tailTasks;
protected SingleThreadEventLoop(EventLoopGroup parent, ThreadFactory threadFactory, boolean addTaskWakesUp) {
this(parent, threadFactory, addTaskWakesUp, DEFAULT_MAX_PENDING_TASKS, RejectedExecutionHandlers.reject());
}
protected SingleThreadEventLoop(EventLoopGroup parent, ThreadFactory threadFactory,
boolean addTaskWakesUp, boolean supportSuspension) {
this(parent, threadFactory, addTaskWakesUp, supportSuspension, DEFAULT_MAX_PENDING_TASKS,
RejectedExecutionHandlers.reject());
}
protected SingleThreadEventLoop(EventLoopGroup parent, Executor executor, boolean addTaskWakesUp) {
this(parent, executor, addTaskWakesUp, false);
}
protected SingleThreadEventLoop(EventLoopGroup parent, Executor executor,
boolean addTaskWakesUp, boolean supportSuspension) {
this(parent, executor, addTaskWakesUp, supportSuspension, DEFAULT_MAX_PENDING_TASKS,
RejectedExecutionHandlers.reject());
}
protected SingleThreadEventLoop(EventLoopGroup parent, ThreadFactory threadFactory,
boolean addTaskWakesUp, int maxPendingTasks,
RejectedExecutionHandler rejectedExecutionHandler) {
this(parent, threadFactory, addTaskWakesUp, false, maxPendingTasks, rejectedExecutionHandler);
}
protected SingleThreadEventLoop(EventLoopGroup parent, ThreadFactory threadFactory,
boolean addTaskWakesUp, boolean supportSuspension, int maxPendingTasks,
RejectedExecutionHandler rejectedExecutionHandler) {
super(parent, threadFactory, addTaskWakesUp, supportSuspension, maxPendingTasks, rejectedExecutionHandler);
tailTasks = newTaskQueue(maxPendingTasks);
}
protected SingleThreadEventLoop(EventLoopGroup parent, Executor executor,
boolean addTaskWakesUp, int maxPendingTasks,
RejectedExecutionHandler rejectedExecutionHandler) {
this(parent, executor, addTaskWakesUp, false, maxPendingTasks, rejectedExecutionHandler);
}
protected SingleThreadEventLoop(EventLoopGroup parent, Executor executor,
boolean addTaskWakesUp, boolean supportSuspension, int maxPendingTasks,
RejectedExecutionHandler rejectedExecutionHandler) {
super(parent, executor, addTaskWakesUp, supportSuspension, maxPendingTasks, rejectedExecutionHandler);
tailTasks = newTaskQueue(maxPendingTasks);
}
protected SingleThreadEventLoop(EventLoopGroup parent, Executor executor,
boolean addTaskWakesUp, Queue<Runnable> taskQueue, Queue<Runnable> tailTaskQueue,
RejectedExecutionHandler rejectedExecutionHandler) {
this(parent, executor, addTaskWakesUp, false, taskQueue, tailTaskQueue, rejectedExecutionHandler);
}
protected SingleThreadEventLoop(EventLoopGroup parent, Executor executor,
boolean addTaskWakesUp, boolean supportSuspension,
Queue<Runnable> taskQueue, Queue<Runnable> tailTaskQueue,
RejectedExecutionHandler rejectedExecutionHandler) {
super(parent, executor, addTaskWakesUp, supportSuspension, taskQueue, rejectedExecutionHandler);
tailTasks = ObjectUtil.checkNotNull(tailTaskQueue, "tailTaskQueue");
}
@Override
public EventLoopGroup parent() {
return (EventLoopGroup) super.parent();
}
@Override
public EventLoop next() {
return (EventLoop) super.next();
}
@Override
public ChannelFuture register(Channel channel) {
return register(new DefaultChannelPromise(channel, this));
}
Source
Frequently Asked Questions
What is the SingleThreadEventLoop class?
SingleThreadEventLoop is a class in the netty codebase, defined in transport/src/main/java/io/netty/channel/SingleThreadEventLoop.java.
Where is SingleThreadEventLoop defined?
SingleThreadEventLoop is defined in transport/src/main/java/io/netty/channel/SingleThreadEventLoop.java at line 34.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free