nuttx/libs/libc/aio
Xiang Xiao 41f29b32e9 libc/aio: loop in aio_suspend() until a listed request completes
aio_suspend() checked the completion status once and then performed a
single sigtimedwait().  Any SIGPOLL delivered by an unrelated AIO
operation (one not referenced by 'list') woke the caller even though
none of the awaited requests had completed, and with a timeout the
remaining wait time was not preserved either.

Re-check the completion status after every wakeup and continue
waiting, recomputing the remaining time from the absolute deadline so
that the full timeout is honored.

Signed-off-by: wushenhui <wushenhui@xiaomi.com>
2026-09-14 17:12:49 -03:00
..
aio.h libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
aio_error.c fs/aio: fix aio_read/aio_write return values per POSIX 2026-09-14 17:12:49 -03:00
aio_return.c libs/libc: migrate to SPDX identifier 2024-10-01 12:25:52 +08:00
aio_suspend.c libc/aio: loop in aio_suspend() until a listed request completes 2026-09-14 17:12:49 -03:00
CMakeLists.txt fs/aio: move lio_listio() to fs/aio 2026-09-14 17:12:49 -03:00
Make.defs fs/aio: move lio_listio() to fs/aio 2026-09-14 17:12:49 -03:00