URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6878
[ Назад ]

Исходное сообщение
"aio и ipc"

Отправлено J0ester , 24-Окт-07 07:14 
Здраствуйте, прочел статью, по aio, у меня возник вопрос. При использовании сигналов или нитей для уведомления о завершении, нужно ли хранить структуры которые использовались для вызова? или можно не дожидаясь завершения операции заюзать структуру aiocb снова?

http://www.ibm.com/developerworks/linux/library/l-async/


Содержание

Сообщения в этом обсуждении
"aio и ipc"
Отправлено Аноним , 24-Окт-07 11:53 
>Здраствуйте, прочел статью, по aio, у меня возник вопрос. При использовании сигналов
>или нитей для уведомления о завершении, нужно ли хранить структуры которые
>использовались для вызова? или можно не дожидаясь завершения операции заюзать структуру
>aiocb снова?
>

Тебя результат операции не интересует? Например данные прочитанные не нужны? Зачем тогда их читал? ))
Буфер ввода-вывода ты тоже теряешь, память утекает.



"aio и ipc"
Отправлено J0ester , 25-Окт-07 11:55 
Я записываю хочу, столкнулся с проблемой.
В каждом цикле у меня N операций, выделяю N структур, а как выделить массив указателей на N этих структур незнаю(Второй параметр сист. вызова). Те чтобы одним вызовом инициоровать все операции и потом через поток проверить все ли выполнились.

Вот прототип функции из aio.h:
int lio_listio ( int mode , struct aiocb * const [] list , int nent , struct sigevent *sig )

Отрывок, где надо выделить память под запросы:

aiocb * aio_request;
aio_request=new aiocb[N];

а как теперь дальше? те не могу организовать выделение динамич памяти для aiocb * const [] list.


"aio и ipc"
Отправлено J0ester , 25-Окт-07 15:08 
в статическом варианте это так
struct aiocb *my_list[N];