[so] [Tema 5] IOCP
Daniel Flamaropol
raptorclw at gmail.com
Wed Jun 3 00:11:06 EEST 2009
Salut.
Aceea _nu_ este o eroare. Apelul de scriere/citire iti spune ca nu s-a
terminat
_imediat_. Trebuie sa ii astepti terminarea. Daca un apel de scriere/citire
iti intoarce
TRUE, atunci s-a efectuat pe loc. Asta se poate intampla pentru
scrieri/citiri foarte scurte
si atunci nu mai trebuie sa faci nicio asteptare, completion ports, etc.
Poti sa treci
direct peste. In cazul in care iti intoarce 997 (cred ca asta e eroarea),
atunci intri in
asteptare pe IOCP, ca la laborator, cu GetQueuedCompletionStatus().
Poti primi 997 si pentru socketi. Se aplica acelasi algoritm. In general, nu
ai ce cauta
cu mecanisme de sincronizare externe la aceasta tema. WSAOVERLAPPED si
OVERLAPPED sunt suficiente.
Sper ca asta era problema.
Numai bine,
Dani
2009/6/2 Razvan Deaconescu <razvan.deaconescu at cs.pub.ro>
> On Tue, 2009-06-02 at 20:04 +0300, Koliva wrote:
> > Am o problema destul de serioasa cu IOCP. Apelurile de scriere/citire
> > asincrone dau din cand in cand eroarea asta:
> > "Overlapped I/O operation is in progress."
> > Am incercat sa protejez toate operatiile care au legatura cu IOCP cu
> > un mutex (inclusiv CreateIoCompletionPort() si
> > GetQueuedCompletionStatus()), dar rezultatul e tot acelasi.
> >
> > Cum as putea sa rezolv problema fara busy waiting?
>
> Din cunostintele mele, nu ajuta folosirea unui mutex. Eroarea ti-o da la
> scrisul/cititul pe socket sau pe fisier? Poti sa ne oferi mai multe
> detalii despre contextul de aparitie a erorii? Google nu e prea friendly
> in ceea ce priveste sursele aparitiei acestei erori si o descriere mai
> detaliata este de ajutor.
>
> Razvan
>
>
> --
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.
>
> _______________________________________________
> so mailing list
> so at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20090603/a1f62341/attachment-0004.htm>
More information about the so
mailing list