Прерывание io_getvents
У меня проблема с прерыванием AIO, когда я вызываю io_getvents, он блокирует мой поток.Мне нужно прерывать от другого в любое время.Например, я пытался сделать трубу.Я получил 2 файловых дескриптора, первый читал, а второй писал.Я поместил чтение fd в очередь aio и вызвал io_getevents, он вернул результат без задержки.Но мне нужно поставить этот ключ, поток должен быть заблокирован, пока я не напишу что-нибудь для написания fd.Я считаю, что все, что я пишу, пишу, что fd включается в чтение fd одновременно.Когда в fd есть что почитать, aio должен вернуть мне выбранные ключи.Мне не нужно использовать poll / epoll и т. Д.
fd[] fds = pipe()
iocb[] blocks = {my reading fd[0], ...}
io_submit(blocks);
int selectedKeys = io_getevents(...)
Когда мне нужно прервать
write(my writing fd[1], anySymb);
Так что все, что я описал, не прерывает операцию io_getevents.Я хочу знать, что не так, я делаю или получить любую другую идею, чтобы справиться с этим