Andreea Hodea <[email protected]> writes: > Salve, > > Multumesc pentru raspuns, m-a ajutat. > > Acum nu reusesc sa dau de cap transmiterii fisierelor din dynamic. Pasii ar > fi: > - primesc pe sockfd EPOLLIN > - adaug eventfd al conexiunii curente in pollul de in > - primesc EPOLLIN pentru eventfd si apelez update_ptr_out pentru socket > - cand primesc EPOLLOUT, scriu pe socket ce am citit asincron prin eventfd > - daca mai am de citit din fisier, apelez update_ptr_in pentru eventfd > - s.a.m.d. > > Sper ca am inteles bine. Acum ma deruteaza doua fraze din tema: "Tot > folosind epoll se va aștepta notificarea încheierii operațiilor > asincrone pe fișiere.",
Folosești eventfd pentru acest lucru. Planificarea unei operații I/O asincrone înseamnă și configurarea unui descriptor eventfd. Acest descriptor va fi adăugat în setul de descriptori așteptați de epoll. Dacă descriptorul eventfd notifică o operație EPOLLIN înseamnă că operația I/O asincronă planificată s-a încheiat. > respectiv "Pentru încheierea operațiilor asincrone, folosiți > io_getevents." Încheierea înseamnă un fel de "cleanup & resource caliming". După ce epoll s-a întors datorită notificării prin EPOLLIN din eventfd, se folosește io_getevents pentru "definitivarea" operației. Înainte de asta, apelezi read pe eventfd. HTH, Răzvan _______________________________________________ http://elf.cs.pub.ro/so/wiki/resurse/lista-discutii
