On Windows each AIO request seeked a _dup of the descriptor and then read or wrote through it. A duplicated descriptor shares the file position, and the seek and the transfer are separate calls, so two threads submitting requests on one descriptor could transfer at each other's offset. Each request is now a single ReadFile/WriteFile with an OVERLAPPED offset on the OS handle, as pread and pwrite already do in Stdio.cpp. GuestAio reads four distinct blocks of one descriptor from four threads and checks every result. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HeC9bA3n74TzJRYv9AgBE8 |
||
|---|---|---|
| .. | ||
| Aio.cpp | ||