Home / Function/ scheduleRead0() — netty Function Reference

scheduleRead0() — netty Function Reference

Architecture documentation for the scheduleRead0() function in IoUringDatagramChannel.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  f0afd207_cffb_c246_72a5_ffe39ea4cfc9["scheduleRead0()"]
  84fa1210_78f7_d596_04d2_ce3b690b2252["IoUringDatagramChannelUnsafe"]
  f0afd207_cffb_c246_72a5_ffe39ea4cfc9 -->|defined in| 84fa1210_78f7_d596_04d2_ce3b690b2252
  002f14bf_467b_81db_b4c4_3c6c831693f3["scheduleRecvmsg()"]
  f0afd207_cffb_c246_72a5_ffe39ea4cfc9 -->|calls| 002f14bf_467b_81db_b4c4_3c6c831693f3
  style f0afd207_cffb_c246_72a5_ffe39ea4cfc9 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

transport-classes-io_uring/src/main/java/io/netty/channel/uring/IoUringDatagramChannel.java lines 471–492

        @Override
        protected int scheduleRead0(boolean first, boolean socketIsEmpty) {
            final IoUringRecvByteAllocatorHandle allocHandle = recvBufAllocHandle();
            ByteBuf byteBuf = allocHandle.allocate(alloc());
            assert readBuffer == null;
            readBuffer = byteBuf;

            int writable = byteBuf.writableBytes();
            allocHandle.attemptedBytesRead(writable);
            int datagramSize = ((IoUringDatagramChannelConfig) config()).getMaxDatagramPayloadSize();

            int numDatagram = datagramSize == 0 ? 1 : Math.max(1, byteBuf.writableBytes() / datagramSize);

            int scheduled = scheduleRecvmsg(byteBuf, numDatagram, datagramSize);
            if (scheduled == 0) {
                // We could not schedule any recvmmsg so we need to release the buffer as there will be no
                // completion event.
                readBuffer = null;
                byteBuf.release();
            }
            return scheduled;
        }

Domain

Subdomains

Frequently Asked Questions

What does scheduleRead0() do?
scheduleRead0() is a function in the netty codebase, defined in transport-classes-io_uring/src/main/java/io/netty/channel/uring/IoUringDatagramChannel.java.
Where is scheduleRead0() defined?
scheduleRead0() is defined in transport-classes-io_uring/src/main/java/io/netty/channel/uring/IoUringDatagramChannel.java at line 471.
What does scheduleRead0() call?
scheduleRead0() calls 1 function(s): scheduleRecvmsg.

Analyze Your Own Codebase

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

Try Supermodel Free