Home / Function/ rebuildSelector0() — netty Function Reference

rebuildSelector0() — netty Function Reference

Architecture documentation for the rebuildSelector0() function in NioIoHandler.java from the netty codebase.

Function java Buffer Telemetry calls 3 called by 2

Entity Profile

Dependency Diagram

graph TD
  0cde094c_1fde_4ca0_aa21_b607ebeae5b5["rebuildSelector0()"]
  db526e28_8aae_a182_b56b_dc12824d89f5["NioIoHandler"]
  0cde094c_1fde_4ca0_aa21_b607ebeae5b5 -->|defined in| db526e28_8aae_a182_b56b_dc12824d89f5
  bfebd9e6_05a3_0eea_3b0f_b34d5870ab36["run()"]
  bfebd9e6_05a3_0eea_3b0f_b34d5870ab36 -->|calls| 0cde094c_1fde_4ca0_aa21_b607ebeae5b5
  91e9bee4_1b62_e088_9fb3_4b12427baefc["Selector()"]
  91e9bee4_1b62_e088_9fb3_4b12427baefc -->|calls| 0cde094c_1fde_4ca0_aa21_b607ebeae5b5
  ef8255b9_2b69_3cc8_b9f4_09f59f321f26["isValid()"]
  0cde094c_1fde_4ca0_aa21_b607ebeae5b5 -->|calls| ef8255b9_2b69_3cc8_b9f4_09f59f321f26
  ecdfe176_a66d_99e6_189e_28d99cc27fe0["cancel()"]
  0cde094c_1fde_4ca0_aa21_b607ebeae5b5 -->|calls| ecdfe176_a66d_99e6_189e_28d99cc27fe0
  b2d60452_c9f9_89ec_0be0_2d281d72f3a4["close()"]
  0cde094c_1fde_4ca0_aa21_b607ebeae5b5 -->|calls| b2d60452_c9f9_89ec_0be0_2d281d72f3a4
  style 0cde094c_1fde_4ca0_aa21_b607ebeae5b5 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

transport/src/main/java/io/netty/channel/nio/NioIoHandler.java lines 255–302

    void rebuildSelector0() {
        final Selector oldSelector = selector;
        final SelectorTuple newSelectorTuple;

        if (oldSelector == null) {
            return;
        }

        try {
            newSelectorTuple = openSelector();
        } catch (Exception e) {
            logger.warn("Failed to create a new Selector.", e);
            return;
        }

        // Register all channels to the new Selector.
        int nChannels = 0;
        for (SelectionKey key : oldSelector.keys()) {
            DefaultNioRegistration handle = (DefaultNioRegistration) key.attachment();
            try {
                if (!key.isValid() || key.channel().keyFor(newSelectorTuple.unwrappedSelector) != null) {
                    continue;
                }

                handle.register(newSelectorTuple.unwrappedSelector);
                nChannels++;
            } catch (Exception e) {
                logger.warn("Failed to re-register a NioHandle to the new Selector.", e);
                handle.cancel();
            }
        }

        selector = newSelectorTuple.selector;
        unwrappedSelector = newSelectorTuple.unwrappedSelector;

        try {
            // time to close the old selector as everything else is registered to the new one
            oldSelector.close();
        } catch (Throwable t) {
            if (logger.isWarnEnabled()) {
                logger.warn("Failed to close the old Selector.", t);
            }
        }

        if (logger.isInfoEnabled()) {
            logger.info("Migrated " + nChannels + " channel(s) to the new Selector.");
        }
    }

Domain

Subdomains

Called By

Frequently Asked Questions

What does rebuildSelector0() do?
rebuildSelector0() is a function in the netty codebase, defined in transport/src/main/java/io/netty/channel/nio/NioIoHandler.java.
Where is rebuildSelector0() defined?
rebuildSelector0() is defined in transport/src/main/java/io/netty/channel/nio/NioIoHandler.java at line 255.
What does rebuildSelector0() call?
rebuildSelector0() calls 3 function(s): cancel, close, isValid.
What calls rebuildSelector0()?
rebuildSelector0() is called by 2 function(s): Selector, run.

Analyze Your Own Codebase

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

Try Supermodel Free