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
Defined In
Source
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