Functia cleanup apeleaza msgq_destroy(gateway), iar receive apeleaza 
msgq_recv(gateway, &msg) si intoarce 0 cand campul nume e "exit". Daca mut 
"Command msg" in receive, procesul se termina dupa ce primeste exact 6 mesaje 
de exit (nu stiu de ce 6, dar am rulat de mai multe ori si mereu numai dupa ce 
receptioneaza 6 mesaje, desi din client trebuie sa trimit mai multe ca el sa 
primeasca 6).

Nu pornesc niciun server, nu folosesc semafoare, nici memorie partajata. Vreau 
numai sa testez ca "./client exit exit -1" merge. Anyone? Any advice?

--- On Thu, 4/5/12, Andreea Hodea <[email protected]> wrote:

> 
> De ore intregi fac teste fara succes, mi-e imposibil sa vad
> bugul. Daca rulez main-ul de mai jos, gateway-ul ajunge sa
> afiseze finished, dar procesul nu se termina:
> int main() {
>     /* Message queue for communication with
> clients. */
>     msgq_t gateway;
>     Command msg;
>     
>     gateway = init();
> 
>     do {
>         memset(&msg, 0,
> sizeof(msg));       
>     
>     }while (receive(gateway, &msg));
>     
>     cleanup(gateway);
> 
>     dprintf("[GW]finished\n");
>     fflush(stdout);
>     
>     return EXIT_SUCCESS;
> }
> 
> Procesul nu creeaza alte procese, doar apeleaza functiile
> pentru cozi din laboratorul 5. Are cineva vreo sugestie?
> 
> Multumesc,
> Andreea

_______________________________________________
http://elf.cs.pub.ro/so/wiki/resurse/lista-discutii

Raspunde prin e-mail lui