Se repornesc in adevaratul sens al cuvantului.
Am pus _imediat_ dupa declararea variabilelor afisarea unui text (si in
gateway, si in server). Dupa ce rulez din cygwin clientul cu "exit" se fac
acele afisari, ca si cum s-ar fi inchis si ar fi repornit din nou. Acest lucru
se intampla fix de 6 ori. A 6-a oara chiar se inchid.
int main (int argc, char * argv[]) {
// Declaratii
printf("Pornire GW\n");
fflush(stdout);
// Operatii de deschidere/creare mailsloturi
while (1) {
// Citire cmd din "\\.\mailslot\gateway"
if (.....) {
......
break;
} //endif
// Alte operatii
} //endwhile
// Operatii de cleanup
return 0;
} //endmain
Sunt sigur ca nu am multiple while-uri si mesajele _sunt_ primite, in sensul ca
tema este perfect functionala, mai putin exit-ul asta. Checker-ul trece, in
functia check_test(), de partea cu:
wait ${clients_pids[$client]} > $LOG_FILE 2>&1
Dar se agata, in aceeasi functie, din cauza:
wait $srv > $LOG_FILE 2>&1
________________________________________
From: [email protected] [[email protected]] on behalf of
Razvan Crainea [[email protected]]
Sent: Saturday, April 07, 2012 7:34 PM
To: Sisteme de Operare
Subject: Re: [so] [TEMA2][WIN] Problema Exit
2012/4/7 Adrian-Gabriel MICLE <[email protected]>:
> Salut!
>
> Am o mica problema. Gateway-ul meu citeste intr-un ciclu while comenzi din
> mailslot-ul in care scriu clientii. Totul merge fain frumos pana cand se
> primeste comanda exit. Pentru tratarea acesteia folosesc urmatoarea secventa:
>
> if (strncmp(cmd.name, "exit", 4) == 0) {
> /*
> * foreach server:
> * send exit;
> */
> break;
> }
>
> In urma iesirii din while se fac operatiile de cleanup si apoi return. Insa,
> programele, in loc sa se opreasca, se repornesc. Trebuie sa dau "exit" de
> vreo 6 ori ca sa-mi iasa efectiv.
>
> Intuieste cineva care ar putea fi problema?
>
Salut, Gabriel!
În ce sens se repornesc, se execută din nou programul? Ești sigur ca
if-ul respectiv nu este în două bucle:
while (cond1) {
...
while (cond2) {
...
if (...){
}
}
}
--
Răzvan Crainea
_______________________________________________
http://elf.cs.pub.ro/so/wiki/resurse/lista-discutii
_______________________________________________
http://elf.cs.pub.ro/so/wiki/resurse/lista-discutii