O zdravo!
Imam se 2 sveza vprasanj..
1. kako interruptas select()
Recimo da imas zagnan select ki caka da bo minil cas tv (struct timeval).
Kako ga (z signalom?) prisiliti da prekine in vrne EINTR?
2. A se da instalirati signal handler znotraj enega threada? Ce
ga instaliram z signal(signo,handler); mi ga nastavi samo za main
thread ne pa tudi za childe.
On Tue, 14 Dec 1999, Rok Papez wrote:
> netstat --inet -al bi ti moral povedati ce so v CLOSE_WAIT ali kako se ze
> imenuje... ce niso si najbrz naletel na neki kernel bug, ki pod pthreads ne
> zapira file descriptorje.
Hmm nadvse zanimivo in kreativno... freezne na vsaj 5 razlicnih nacinov:
1. ko closas connection z ^]q ostane v ESTABLISHED stateu! in to dokler
in.telnetd nekaj ne rece. V tem trenutku se postavi Recv-Q na >0 in state
se premeni na CLOSE_WAIT na eni strani (server), na drugi (client) pa na
WAIT_FIN2... in potem caka do neskoncnosti (#define NESKONCNOST >2dni)
2. ko closas connection se takoj postavi state na eni strani na CLOSE_WAIT
na drugi pa WAIT_FIN2
3. postavi se v state TIME_WAIT (kaj je to?)
4. ena stran se zapre, na drugi pa je state CLOSE_WAIT..
5. ostane v statu CLOSE .. kaj je to? v netstat manpageu so opisani
samo CLOSING in CLOSED? Typo in netstat?
Po eni izmed teh petih tockah se scasoma vsi nastavijo na CLOSE_WAIT
(TTL?) in obstanejo tako do konca.. Doma imam uptime 2 dni (workstation)
in nekateri socketi so v tem stateu ze od zacetka..
Imam odprte celo tri ttypX in zagnane bashe ki so idle ze 2 dni!
Tudi ce pokillam in.telnetd se ostanejo odprti..
btw.. WAIT_FIN2 in CLOSE_WAIT.. Kaj ne cakata drug na drugega? Ce sta oba
v ustreznem stateu, zakaj se socket ne zapre??
> Imo sem tudi ze sam nelatel na tezave z pthreads/fd-ji. To spada pod enega
> imzed razlogov zakaj pravim, da LinuxThreads se niso v stanju prave
> "uporabnosti".
Zadeva morda res se ni cisto dozorela (ceprav se zmerom nisem preprican
da to ni moj bug) vendar sta ideja in pristop pomojem mnenju zelo
perspektivna.
> Ali lahko samo za informacijo poves kateri glibc uporabljas ? ;-).
glibc-2.0.7-29. rh52 default.. Mislim da bom upgradeal samo LinuxThreads
pa da vidimo kako se obnasajo...
lp
Mitja