Home / Class/ TimeoutTask Class — netty Architecture

TimeoutTask Class — netty Architecture

Architecture documentation for the TimeoutTask class in FixedChannelPool.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  7d7f67e6_fbbc_ac48_04e5_69cd92634bee["TimeoutTask"]
  4b30891f_00e9_b07c_2218_4f447886cfdd["FixedChannelPool.java"]
  7d7f67e6_fbbc_ac48_04e5_69cd92634bee -->|defined in| 4b30891f_00e9_b07c_2218_4f447886cfdd
  24f665bf_9852_2540_7b1a_564ff32355be["run()"]
  7d7f67e6_fbbc_ac48_04e5_69cd92634bee -->|method| 24f665bf_9852_2540_7b1a_564ff32355be
  b03e02b9_077c_8ae8_626d_b27c71cfb9f9["onTimeout()"]
  7d7f67e6_fbbc_ac48_04e5_69cd92634bee -->|method| b03e02b9_077c_8ae8_626d_b27c71cfb9f9

Relationship Graph

Source Code

transport/src/main/java/io/netty/channel/pool/FixedChannelPool.java lines 373–395

    private abstract class TimeoutTask implements Runnable {
        @Override
        public final void run() {
            assert executor.inEventLoop();
            long nanoTime = System.nanoTime();
            for (;;) {
                AcquireTask task = pendingAcquireQueue.peek();
                // Compare nanoTime as descripted in the javadocs of System.nanoTime()
                //
                // See https://docs.oracle.com/javase/7/docs/api/java/lang/System.html#nanoTime()
                // See https://github.com/netty/netty/issues/3705
                if (task == null || nanoTime - task.expireNanoTime < 0) {
                    break;
                }
                pendingAcquireQueue.remove();

                --pendingAcquireCount;
                onTimeout(task);
            }
        }

        public abstract void onTimeout(AcquireTask task);
    }

Frequently Asked Questions

What is the TimeoutTask class?
TimeoutTask is a class in the netty codebase, defined in transport/src/main/java/io/netty/channel/pool/FixedChannelPool.java.
Where is TimeoutTask defined?
TimeoutTask is defined in transport/src/main/java/io/netty/channel/pool/FixedChannelPool.java at line 373.

Analyze Your Own Codebase

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

Try Supermodel Free