<div dir="ltr"><div dir="ltr" class="gmail_msg"><div class="gmail_quote gmail_msg"><div dir="ltr" class="gmail_msg"><div class="gmail_msg">Eu intrebasem despre limita pentru nSize de la Pipe pentru ca in implementarea de pe Windows fac a | b | c serial. Adica dupa ce s-a terminat a, b incepe sa citeasca. Dupa ce s-a terminat b, c incepe sa citeasca.<br></div><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Cu limita cel putin 20000000 pentru nSize trec toate testele local & vmchecker (doar 2 teste au nevoie de limita > cea default), dar as vrea imi iasa pipe-ul eficient si pe windows.</div></div></div></div></div></div><div dir="ltr" class="gmail_msg"><div class="gmail_quote gmail_msg"><div dir="ltr" class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Am o varianta in care fac paralel. Ex: a | b (b sa poate citi din pipe imediat dupa ce a face primul write).</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">In do_on_pipe fac 2 threaduri:</div><div class="gmail_msg">- thread 1: redirect, CreateProcess("a", ..), undo redirect (inchide handle de fisiere deschisi in redirect sau veniti de la comanda parinte pentru pipe  - deci inchide write handle din pipe)</div><div class="gmail_msg">- thread 2: redirect, CreateProcess("b", ...)  si nu se opreste</div><div class="gmail_msg">Cand rulez a | b apare in terminal tot rezultatul comenzii "a | b", am pus printuri in program: thread 1 asteapta procesul copil corespunzator lui a, face close la capatul de write, da ExitThread(cod_copil), iar parintele il asteapta cu success. </div><div class="gmail_msg">Cu toate acestea comanda b ramane in asteptare. Eu ma asteptam ca aceasta abordare sa fie corecta: procesul b sa se opreasca deoarece s-a terminat procesul a si in thread1 am inchis capatul de write. Deci cand el termina de citit tot din pipe.</div><div class="gmail_msg"> </div></div></div></div></div><div dir="ltr" class="gmail_msg"><div class="gmail_quote gmail_msg"><div dir="ltr" class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg">As vrea sa stiu daca logica mea e buna. Am tot modificat configurarile, in niciuna nu se opreste b.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Implementarea se gaseste pe Gitlab[1]. Diferenta intre cele 2 abordari de la pipe o face linia 552.</div></div></div></div></div><div dir="ltr" class="gmail_msg"><div class="gmail_quote gmail_msg"><div dir="ltr" class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg">// #define PIPE_WITH_THREADS </div><div class="gmail_msg">Afecteaza doar comportamentul functiei do_on_pipe.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">P.S. Am dat access pentru Costin si Razvan. Unde gasesc lista cu resposabilii de la tema X? (sa le pot da access tuturor pentru etapa de corectare)</div><div class="gmail_msg"><br></div></div></div></div></div><div dir="ltr" class="gmail_msg"><div class="gmail_quote gmail_msg"><div dir="ltr" class="gmail_msg"><div class="gmail_msg" style="font-size:small"><div class="gmail_msg">Cu bine,</div><div class="gmail_msg">Darius <br class="gmail_msg"></div></div><div class="gmail_msg" style="font-size:small"><br class="gmail_msg"></div><div class="gmail_msg" style="font-size:small">[1] <a href="https://gitlab.cs.pub.ro/darius.neatu1995/SO" class="gmail_msg" target="_blank">https://gitlab.cs.pub.ro/darius.neatu1995/SO</a></div><br class="inbox-inbox-Apple-interchange-newline"></div></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Sun, Apr 2, 2017 at 3:25 PM Darius-Florentin Neatu <<a href="mailto:neatudarius@gmail.com">neatudarius@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg">Ok. Multumesc mult!<div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">De asemenea, as dori sa intreb daca ne puteti recomanda o metoda simpla de a verifica existenta memory leaks si pentru handle-uri de fisiere care nu au fost inchise la finalul executiei programului.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Cu ce tool-uri va fi testata tema pe Windows pentru problemele mentionate mai sus? (am inteles ca valgrind nu este portat pe cygwin)</div></div><div dir="ltr" class="gmail_msg"><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Darius</div></div><br class="gmail_msg"><div class="gmail_quote gmail_msg"><div dir="ltr" class="gmail_msg">On Sun, Apr 2, 2017 at 1:16 PM Costin Lupu <<a href="mailto:costin.lup@gmail.com" class="gmail_msg" target="_blank">costin.lup@gmail.com</a>> wrote:<br class="gmail_msg"></div><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 04/02/2017 03:33 AM, Darius-Florentin Neatu via so wrote:<br class="gmail_msg">
> Salut,<br class="gmail_msg">
><br class="gmail_msg">
> Vom fi depunctati daca punem o valoare mare pentru numarul maxim de<br class="gmail_msg">
> bytes care se pot afla la un moment dat in pipe? (parametrul nSize de la<br class="gmail_msg">
> CreatePipe).<br class="gmail_msg">
><br class="gmail_msg">
> Ex. 20MB<br class="gmail_msg">
<br class="gmail_msg">
Darius, de ce ar fi asta o problemă? Uite ce scrie în documentație [1]<br class="gmail_msg">
pentru nSize: "The size is only a suggestion; the system uses the value<br class="gmail_msg">
to calculate an appropriate buffering mechanism". Deci nu veți fi<br class="gmail_msg">
depunctați pentru așa ceva.<br class="gmail_msg">
<br class="gmail_msg">
[1]<br class="gmail_msg">
<a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa365152%28v=vs.85%29.aspx" rel="noreferrer" class="gmail_msg" target="_blank">https://msdn.microsoft.com/en-us/library/windows/desktop/aa365152%28v=vs.85%29.aspx</a><br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
Costin<br class="gmail_msg">
</blockquote></div></blockquote></div>