Home / Class/ NonStickyEventExecutorGroup Class — netty Architecture

NonStickyEventExecutorGroup Class — netty Architecture

Architecture documentation for the NonStickyEventExecutorGroup class in NonStickyEventExecutorGroup.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  fb5de0b8_403e_ac66_5858_800a6a7a6988["NonStickyEventExecutorGroup"]
  eafe5945_ac14_eb1d_92de_38d929817de3["NonStickyEventExecutorGroup.java"]
  fb5de0b8_403e_ac66_5858_800a6a7a6988 -->|defined in| eafe5945_ac14_eb1d_92de_38d929817de3
  d99e0389_5a32_4fdb_d06d_c26769c47d41["NonStickyEventExecutorGroup()"]
  fb5de0b8_403e_ac66_5858_800a6a7a6988 -->|method| d99e0389_5a32_4fdb_d06d_c26769c47d41
  ce782680_b574_3662_b299_5cecb066cf09["EventExecutorGroup()"]
  fb5de0b8_403e_ac66_5858_800a6a7a6988 -->|method| ce782680_b574_3662_b299_5cecb066cf09
  21e96047_4ae3_8466_7593_e9ea51afd580["NonStickyOrderedEventExecutor()"]
  fb5de0b8_403e_ac66_5858_800a6a7a6988 -->|method| 21e96047_4ae3_8466_7593_e9ea51afd580
  401412de_7d77_494e_6721_4314c05777e0["isShuttingDown()"]
  fb5de0b8_403e_ac66_5858_800a6a7a6988 -->|method| 401412de_7d77_494e_6721_4314c05777e0
  98cb20e8_be01_2513_6e71_906f9e159465["shutdownGracefully()"]
  fb5de0b8_403e_ac66_5858_800a6a7a6988 -->|method| 98cb20e8_be01_2513_6e71_906f9e159465
  7635af02_08b8_bc3c_f259_4b667fe2aa81["terminationFuture()"]
  fb5de0b8_403e_ac66_5858_800a6a7a6988 -->|method| 7635af02_08b8_bc3c_f259_4b667fe2aa81
  30e14b10_4c41_7544_be8b_35d4777ef941["shutdown()"]
  fb5de0b8_403e_ac66_5858_800a6a7a6988 -->|method| 30e14b10_4c41_7544_be8b_35d4777ef941
  97663d9b_e7d5_f6f6_d7df_b4ed31aa5672["shutdownNow()"]
  fb5de0b8_403e_ac66_5858_800a6a7a6988 -->|method| 97663d9b_e7d5_f6f6_d7df_b4ed31aa5672
  2ea4d00c_4990_8a44_7627_cce15fef6de8["EventExecutor()"]
  fb5de0b8_403e_ac66_5858_800a6a7a6988 -->|method| 2ea4d00c_4990_8a44_7627_cce15fef6de8
  db99e45d_c2f6_449a_a972_643f3224eeb0["iterator()"]
  fb5de0b8_403e_ac66_5858_800a6a7a6988 -->|method| db99e45d_c2f6_449a_a972_643f3224eeb0
  440597a4_84fe_31a6_05fe_62ea811a0472["submit()"]
  fb5de0b8_403e_ac66_5858_800a6a7a6988 -->|method| 440597a4_84fe_31a6_05fe_62ea811a0472
  3729be0c_2d45_219b_21bb_04fec7ed1e49["schedule()"]
  fb5de0b8_403e_ac66_5858_800a6a7a6988 -->|method| 3729be0c_2d45_219b_21bb_04fec7ed1e49
  24b0c85e_86b9_c207_bd6d_a9d23095a556["scheduleAtFixedRate()"]
  fb5de0b8_403e_ac66_5858_800a6a7a6988 -->|method| 24b0c85e_86b9_c207_bd6d_a9d23095a556

Relationship Graph

Source Code

common/src/main/java/io/netty/util/concurrent/NonStickyEventExecutorGroup.java lines 41–348

@UnstableApi
public final class NonStickyEventExecutorGroup implements EventExecutorGroup {
    private final EventExecutorGroup group;
    private final int maxTaskExecutePerRun;

    /**
     * Creates a new instance. Be aware that the given {@link EventExecutorGroup} <strong>MUST NOT</strong> contain
     * any {@link OrderedEventExecutor}s.
     */
    public NonStickyEventExecutorGroup(EventExecutorGroup group) {
        this(group, 1024);
    }

    /**
     * Creates a new instance. Be aware that the given {@link EventExecutorGroup} <strong>MUST NOT</strong> contain
     * any {@link OrderedEventExecutor}s.
     */
    public NonStickyEventExecutorGroup(EventExecutorGroup group, int maxTaskExecutePerRun) {
        this.group = verify(group);
        this.maxTaskExecutePerRun = ObjectUtil.checkPositive(maxTaskExecutePerRun, "maxTaskExecutePerRun");
    }

    private static EventExecutorGroup verify(EventExecutorGroup group) {
        Iterator<EventExecutor> executors = ObjectUtil.checkNotNull(group, "group").iterator();
        while (executors.hasNext()) {
            EventExecutor executor = executors.next();
            if (executor instanceof OrderedEventExecutor) {
                throw new IllegalArgumentException("EventExecutorGroup " + group
                        + " contains OrderedEventExecutors: " + executor);
            }
        }
        return group;
    }

    private NonStickyOrderedEventExecutor newExecutor(EventExecutor executor) {
        return new NonStickyOrderedEventExecutor(executor, maxTaskExecutePerRun);
    }

    @Override
    public boolean isShuttingDown() {
        return group.isShuttingDown();
    }

    @Override
    public Future<?> shutdownGracefully() {
        return group.shutdownGracefully();
    }

    @Override
    public Future<?> shutdownGracefully(long quietPeriod, long timeout, TimeUnit unit) {
        return group.shutdownGracefully(quietPeriod, timeout, unit);
    }

    @Override
    public Future<?> terminationFuture() {
        return group.terminationFuture();
    }

    @SuppressWarnings("deprecation")
    @Override
    public void shutdown() {
        group.shutdown();
    }

    @SuppressWarnings("deprecation")
    @Override
    public List<Runnable> shutdownNow() {
        return group.shutdownNow();
    }

    @Override
    public EventExecutor next() {
        return newExecutor(group.next());
    }

    @Override
    public Iterator<EventExecutor> iterator() {
        final Iterator<EventExecutor> itr = group.iterator();
        return new Iterator<EventExecutor>() {
            @Override
            public boolean hasNext() {

Frequently Asked Questions

What is the NonStickyEventExecutorGroup class?
NonStickyEventExecutorGroup is a class in the netty codebase, defined in common/src/main/java/io/netty/util/concurrent/NonStickyEventExecutorGroup.java.
Where is NonStickyEventExecutorGroup defined?
NonStickyEventExecutorGroup is defined in common/src/main/java/io/netty/util/concurrent/NonStickyEventExecutorGroup.java at line 41.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free