Opened 9 years ago
Closed 9 years ago
#41 closed task (fixed)
Async completion API emulation for OS/2
Reported by: | Valery V. Sedletski | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | Enhanced |
Component: | Common Tasks | Keywords: | aio async asynchronous request |
Cc: |
Description
Some parts of VBox code (like src/VBox/Devices/Storage/DrvVD.cpp)require the AIO API, either, win32-like or posix-like. This API makes possible asynchronous I/O requests put in queue, without immediately blocking and getting status. Without these API's, SATA/SCSI/SAS won't work. We have no such API's on OS/2, so we need to emulate them somehow. For UNIX/Linux, there exists libAIO -- maybe, we could take this as a base.
Change History (4)
comment:2 by , 9 years ago
Ported AIO code from Linux Glibc, so far. Made aio.dll and SATA now works. But now I am getting traps in pthrd01.dll, in pthread_cond_destroy, when cond variable is equal to PTHREAD_COND_INITIALIZER == -1. Debugging.
comment:3 by , 9 years ago
The libaio code extracted from glibc is now working. Created the .rpm package for it and committed to ports repository. Linked and tested with VBox code, now SATA and SCSI works.
comment:4 by , 9 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
In Linux the POSIX AIO interfaces are provided by glibc since version 2.1.
see http://man7.org/linux/man-pages/man7/aio.7.html
"The current Linux POSIX AIO implementation is provided in user space by glibc." -- So, we maybe could port it from glibc.