2012/4/3 Stanciu Alexandru <[email protected]>:
>
> Deci daca fac combinatiile:
> 1. attr.mq_msgsize = sizeof(message_t) + 1 cu rc = mq_receive(q, (char
> *)buf, sizeof(message_t), NULL); imi executa tot ce se afla sub
> receive(coada este neblocanta) dar cand trimit ceva pe coada de la client nu
> receptioneaza(se blocheaza)
> 2. attr.mq_msgsize = sizeof(message_t)  cu rc = mq_receive(q, (char *)buf,
> sizeof(message_t) + 1, NULL);  coada este blocanta; pana cand nu trimit ceva
> pe coada, nu se executa nimic dupa receive
> 3. attr.mq_msgsize = sizeof(message_t)  cu rc = mq_receive(q, (char *)buf,
> sizeof(message_t), NULL); ca la 2
>
> Declar coada ca fiind neblocanta; poate sa-mi zica si mie cineva unde
> gresesc?(sterg toate cozile create)
>

Salut, Alexandru!

Clientul încearcă și el să creeze coada blocant, dacă aceasta nu
există. Înainte de receive, apelează un mq_getattr și verifică dacă
flag-ul O_NONBLOCK este în continuare setat.

-- 
Răzvan Crainea
_______________________________________________
http://elf.cs.pub.ro/so/wiki/resurse/lista-discutii

Raspunde prin e-mail lui