Resitev je taksna, da v primeru, ko ti "read" vrne vrednost 0 zapres PIPE in
ga takoj odpres.
Tako bo pipe ponovno pripravljen na branje podatkov. Ce to storis v BLOCKING
nacinu tako ali tako selecta ne potrebujes, drugace pa moras uporabiti
"select".
Mislim pa, da vsa stvar ni "BUG", ampak cisto normalno delovanje "read"
sistemskega klica.
Osebno pa ti za komunikacijo med procesi priporocam SOCKET-e.

NLP

Tomaz

-----Original Message-----
From: Rok Papez <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
Date: 7. oktober 1999 10:52
Subject: Re: [ LUGOS-PROG ] select trouble :-(


>Zivjo Tomaz.
>
>On Thu, 07 Oct 1999, Tomaž Felicijan wrote:
>
>
>> To se zgodi zaradi tega, ker "cat" prebere vsebino PIPE-a samo enkrat in
>> nato konca, s tem
>> pa zapre PIPE.
>> "select" reagira na taksno stanje tako, kot bi bil PIPE vedno pripravljen
na
>> komunikacijo, kar pa seveda ni res, zato "read" vrne vrednost 0.
>> To pomeni, da je v primeru, ko "read" vrne vrednost 0, prislo do napake
na
>> PIPE komunikaciji oziroma kateremkoli IPC nacinu, ki uporablja "read" in
>> "write".
>
>Tole bi jaz potem ruknil pod "BUG".  Jaz se obesim na read in select se
vedno
>zbudi :(((.. Nebi rekel ce bi se zbudil na exception :((. Kje se da
"teziti"
>glibc developerjem?
>
>Ali se kako da zadevo zaobiti? Kaksen fnctl da se postavi pipe v zacetno
>stanje, ko je select lepo blokiral.
>
>Jaz bom namrec imel kup klientov ki bodo odpirali pipe in pisali notri ter
>zapirali.... prav lahko (in tudi se bo) zgodilo da nihce ne bo imel pipe
odprt
>na write koncu.
>
>Suggestions anyone?
>
>
>--
>best regards,
>Rok Papez.
>

Reply via email to