Home / Function/ scheduleRecvmsg0() — netty Function Reference

scheduleRecvmsg0() — netty Function Reference

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

Function java Buffer Telemetry calls 1 called by 1

Entity Profile

Dependency Diagram

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

Relationship Graph

Source Code

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

        private boolean scheduleRecvmsg0(long bufferAddress, int bufferLength, boolean first) {
            MsgHdrMemory msgHdrMemory = recvmsgHdrs.nextHdr();
            if (msgHdrMemory == null) {
                // We can not continue reading before we did not submit the recvmsg(s) and received the results.
                return false;
            }
            msgHdrMemory.set(socket, null, bufferAddress, bufferLength, (short) 0);

            int fd = fd().intValue();
            int msgFlags = first ? 0 : Native.MSG_DONTWAIT;
            IoRegistration registration = registration();
            // We always use idx here so we can detect if no idx was used by checking if data < 0 in
            // readComplete0(...)
            IoUringIoOps ops = IoUringIoOps.newRecvmsg(
                    fd, (byte) 0, msgFlags, msgHdrMemory.address(), msgHdrMemory.idx());
            long id = registration.submit(ops);
            if (id == 0) {
                // Submission failed we don't used the MsgHdrMemory and so should give it back.
                recvmsgHdrs.restoreNextHdr(msgHdrMemory);
                return false;
            }
            recvmsgHdrs.setId(msgHdrMemory.idx(), id);
            return true;
        }

Domain

Subdomains

Called By

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free