Home / Function/ scheduleWriteMultiple() — netty Function Reference

scheduleWriteMultiple() — netty Function Reference

Architecture documentation for the scheduleWriteMultiple() function in AbstractIoUringStreamChannel.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  f79cc71e_f1c6_3e9c_e16e_f88b23e7f8ba["scheduleWriteMultiple()"]
  2ef046a1_16aa_1708_4ba7_113c9fa2862e["IoUringStreamUnsafe"]
  f79cc71e_f1c6_3e9c_e16e_f88b23e7f8ba -->|defined in| 2ef046a1_16aa_1708_4ba7_113c9fa2862e
  aa27f60f_99c6_9ce3_938c_4faef8f8c2f4["filterWriteMultiple()"]
  f79cc71e_f1c6_3e9c_e16e_f88b23e7f8ba -->|calls| aa27f60f_99c6_9ce3_938c_4faef8f8c2f4
  5d8defc6_646e_bae7_319e_865c37d1c5ed["scheduleWriteSingle()"]
  f79cc71e_f1c6_3e9c_e16e_f88b23e7f8ba -->|calls| 5d8defc6_646e_bae7_319e_865c37d1c5ed
  style f79cc71e_f1c6_3e9c_e16e_f88b23e7f8ba fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

transport-classes-io_uring/src/main/java/io/netty/channel/uring/AbstractIoUringStreamChannel.java lines 238–266

        @Override
        protected int scheduleWriteMultiple(ChannelOutboundBuffer in) {
            assert writeId == 0;

            int fd = fd().intValue();
            IoRegistration registration = registration();
            IoUringIoHandler handler = registration.attachment();
            IovArray iovArray = handler.iovArray();
            int offset = iovArray.count();

            try {
                in.forEachFlushedMessage(filterWriteMultiple(iovArray));
            } catch (Exception e) {
                // This should never happen, anyway fallback to single write.
                return scheduleWriteSingle(in.current());
            }
            long iovArrayAddress = iovArray.memoryAddress(offset);
            int iovArrayLength = iovArray.count() - offset;
            // Should not use sendmsg_zc, just use normal writev.
            IoUringIoOps ops = IoUringIoOps.newWritev(fd, (byte) 0, 0, iovArrayAddress, iovArrayLength, nextOpsId());

            byte opCode = ops.opcode();
            writeId = registration.submit(ops);
            writeOpCode = opCode;
            if (writeId == 0) {
                return 0;
            }
            return 1;
        }

Domain

Subdomains

Frequently Asked Questions

What does scheduleWriteMultiple() do?
scheduleWriteMultiple() is a function in the netty codebase, defined in transport-classes-io_uring/src/main/java/io/netty/channel/uring/AbstractIoUringStreamChannel.java.
Where is scheduleWriteMultiple() defined?
scheduleWriteMultiple() is defined in transport-classes-io_uring/src/main/java/io/netty/channel/uring/AbstractIoUringStreamChannel.java at line 238.
What does scheduleWriteMultiple() call?
scheduleWriteMultiple() calls 2 function(s): filterWriteMultiple, scheduleWriteSingle.

Analyze Your Own Codebase

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

Try Supermodel Free