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
