Асинхронный файловый ввод-вывод
От: chaotic-kotik  
Дата: 16.06.16 12:36
Оценка:
Добрый день.
Пишу утилиту для работы с данными на диске. По самым разным причинам, мне приходится открывать файлы через O_DIRECT (с фоллбэком на буферизованный ввод/вывод, если это не возможно).
Но так как я работаю с большим количеством файлов одновременно, хотелось бы делать это асинхронно. Платформа, на которой я работаю — Linux, соотв. здесь есть Linux AIO. Но хочется взять что-нибудь готовое, так как возможно, придется портировать утилиту под windows. Я немного поизучал данный предмет и пришел к выводу, что ничего готового — нет. Boost.Asio — не может работать с файлами (точнее может, но только под windows). libuv вроде как не использует aio, а реализует внутри себя пулл потоков, на котором запускается выполнение всех операций (это подтверждается тем, что в libuv абсолютно все операции над файлами выполняются асинхронно).
Может я где-то ошибся и где-то есть она — библиотека для асинхронного файлового ввода-вывода?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.