Home / Class/ SingleThreadEventLoop Class — netty Architecture

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));
    }

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