[so] [tema2][linux]problema sincronizare client-gateway
Adrian Dobrescu
removing_rembrands at yahoo.co.uk
Thu Apr 7 13:31:29 EEST 2011
eu incercasem si nu mergea. intorcea already_exists si handle NULL. poate greseam
cum il apelam. in fine. ar fi fost ok sa existe o sincronizare.
--- On Thu, 7/4/11, Virgil Zamfirache <virgil.zamfirache at gmail.com> wrote:
From: Virgil Zamfirache <virgil.zamfirache at gmail.com>
Subject: Re: [so] [tema2][linux]problema sincronizare client-gateway
To: "Sisteme de Operare" <so at cursuri.cs.pub.ro>
Date: Thursday, 7 April, 2011, 13:22
Stiam ca daca folosesti in ambele CreateSemaphre, unul dintre ele il va crea efectiv iar celalalt doar il va deschide.
Virgil.
2011/4/7 Adrian Dobrescu <removing_rembrands at yahoo.co.uk>
daca esti pe windows, si semaforul trebuie creat si deschis din procese diferite. same thing.
--- On Thu, 7/4/11, Virgil Zamfirache <virgil.zamfirache at gmail.com> wrote:
From: Virgil Zamfirache <virgil.zamfirache at gmail.com>
Subject: Re: [so] [tema2][linux]problema sincronizare client-gateway
To: "Sisteme de Operare" <so at cursuri.cs.pub.ro>
Date: Thursday, 7 April, 2011, 13:00
Salut,
Si eu cred ca exista problema aceasta la client. Oricum un sleep repara doar teoretic problema pentru ca nu se stie cum sunt programati clientii / gateway-ul pe procesor pentru rulare. Din punctul meu de vedere, corect ar fi fost sa se fi folosit un semafor gateway-client prin care gateway-ul sa
semnaleze crearea cozii de mesaje si sa poata porni executia efectiv executia unui clientul care la randul lui elibera urmatorul client s.a.m.d. Poate totusi se modifica testele cu un eventual sleep cum ai mentionat.
Virgil.
2011/4/7 Alex Gorunescu <algorunescu at yahoo.com>
Cred ca este o problema cu sincronizarea client-server. Sau absenta ei. Problema este urmatoarea. De vreo doua zile ma tot chinui sa-mi dau seama de ce imi pica random legatura dintre client si gateway. Mai precis acelasi test (oricare) rula de 3-4 ori bine, dupa care gateway-ul dadea eroare citire din coada cand pornea, iar mergea de cateva ori bine, iar o lua razna. Asa ca, dupa multe incercari de tot felul, mi-a trecut prin cap sa bag un unlink la coada gateway inainte s-o creez sa vad ce se intampla. Comportamentul s-a schimbat. Acum ramanea blocat pe receive. Atunci mi-a picat fisa. Clientul si gateway-ul folosesc aceeasi resursa (coada) dar fara vreun fel de sincronizare intre ele. Voi in teste rulati clientul imediat dupa gateway. Ca urmare uneori clientul ajunge la coada inainte sa o
creeze gateway-ul si o creeaza el. Ca urmare uneori apuca gateway-ul s-o creeze si totul mergea perfect, alteori o creea clientul si totul o lua razna. Nu stiu cum o creeaza clientul dar gateway-ul meu da eroare cand incerca sa citeasca din ea. Daca pun unlink la inceput, atunci clientul face coada, pune mesajul in ea, gateway-ul ajunge si el la punctul magic, o sterge si o recreeaza si dupa sta ca prostul sa astepte un mesaj care nu va mai veni niciodata. Ca sa rezolv problema cu toate testele am pus un sleep de o secunda in teste intre rularea gateway-ului si a clientului si totul a inceput sa mearga cum trebuie. Am rulat toate cele 9 teste de mai multe ori la rand si nu s-a mai blocat niciodata.
Acum intrebarea este, fac eu ceva gresit de apare problema asta ?
Alex
_______________________________________________
http://elf.cs.pub.ro/so/wiki/resurse/lista-discutii
-----Inline Attachment Follows-----
_______________________________________________
http://elf.cs.pub.ro/so/wiki/resurse/lista-discutii
_______________________________________________
http://elf.cs.pub.ro/so/wiki/resurse/lista-discutii
-----Inline Attachment Follows-----
_______________________________________________
http://elf.cs.pub.ro/so/wiki/resurse/lista-discutii
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20110407/114640c2/attachment.htm>
More information about the so
mailing list