Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kylix3/RH9: thread-ovi ne umiru

[es] :: Pascal / Delphi / Kylix :: Kylix3/RH9: thread-ovi ne umiru

[ Pregleda: 3251 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Milos D
Beograd

Član broj: 5621
Poruke: 280
*.ptt.yu



+1 Profil

icon Kylix3/RH9: thread-ovi ne umiru19.07.2004. u 21:08 - pre 218 meseci
Dakle, napravim ja tako thread u Kylix3 na RedHat9, u execute stoji samo sleep od par sekundi (ili bilo sta drugo) i taj thread ostaje zauvek prisutan kao "zombie" thread. StartSuspended ne utice na problem. Thread ne trosi resurse, ali tu je. Kill ne uspeva da ga ubije, bez poruke o gresci. Ima li resenja za ovaj problem?
 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 802
217.119.242.*



+62 Profil

icon Re: Kylix3/RH9: thread-ovi ne umiru20.07.2004. u 13:25 - pre 218 meseci
E, koliko su slicni Kylix TThread i Delphi-jev TThread?
Ako jesu slicni, onda treba da u constructor-u 'tvog' thread-a postavis property FreeOnTerminate na true; na taj nacin, garantovano 'umire' kad izadje iz Execute metode.
Pozdrav

Rajko
 
Odgovor na temu

Milos D
Beograd

Član broj: 5621
Poruke: 280
*.ptt.yu



+1 Profil

icon Re: Kylix3/RH9: thread-ovi ne umiru20.07.2004. u 19:45 - pre 218 meseci
Eh, malopre sam shvatio da se problem pojavljuje samo kada program pokrenem iz Kylix-a. Kada ga startujem nezavisno nema tog problema, tako da mi nije vazno zasto se to desava.

Inace, hvala na predlogu, ali izgleda da FreeOnTerminate ne utice na problem.
 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 802
217.119.242.*



+62 Profil

icon Re: Kylix3/RH9: thread-ovi ne umiru22.07.2004. u 08:21 - pre 218 meseci
Aj stavi breakpoint na taj Sleep() u Execute metodi, cisto da se uveris da li uopste thread stize dotle. Lici mi da si kreirao thread sa Suspended (parametar u constructor-u), a onda imas upravo 'zombi' thread.
Ukoliko jesi kreirao suspendovane thread-ove, onda samo pozoves recimo MyThread.Resume i to je to.

Rajko
 
Odgovor na temu

Milos D
Beograd

Član broj: 5621
Poruke: 280
*.ptt.yu



+1 Profil

icon Re: Kylix3/RH9: thread-ovi ne umiru22.07.2004. u 17:54 - pre 218 meseci
Ma ne, tredovi odrade svoj posao lepo ali se ne uklanjaju sa liste aktivnih samo ako je program startovan iz Kylix-a inače kulturno uginu tako da me to uopšte ne brine jer se program ionako kod korisnika ne pokreće iz Kylix-a već, naravno, samostalno.
 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 802
217.119.242.*



+62 Profil

icon Re: Kylix3/RH9: thread-ovi ne umiru26.07.2004. u 08:03 - pre 218 meseci
'Kill ne uspeva da ga ubije, bez poruke o gresci.'

Sta ti ovo znaci? Ima greska ili nema? Nemoj tako olako da prihvatas stanje stvari. Definitivno ovo sto si naveo nije regularno. Znam o cemu pricam; i meni se ranije desavalo da thread aplikacije ne rade iz IDE-a, a iz dektopa rade (i obratno). I uvek se ispostavljalo da je u pitanju greska u design-u (sinhronizaciji thread-ova).
A zasto se to desava? Zato sto timing (nemam bolji izraz) thread-ova ne tece isto, u zavisnosti kako je startovana aplikacija. Posledica toga je da se u jednom trenutku aplikacija obrati thread-u koji je vec 'mrtav' (prazna referenca), ili se thread obrati necemu sto je u tom trenutku prazna referenca. Razmisli o ovome.
Pozdrav

Rajko
 
Odgovor na temu

Milos D
Beograd

Član broj: 5621
Poruke: 280
*.ptt.yu



+1 Profil

icon Re: Kylix3/RH9: thread-ovi ne umiru26.07.2004. u 16:44 - pre 218 meseci
Auh, sada izgleda ovaj problem tebe nervira mnooooogo vise nego mene :)

Prvo, verovatno nisam bio dovoljno jasan jer spominjes sinhronizaciju i moguce razloge zasto tredovi ne rade kako treba - kod mene svi tredovi, u oba slucaja (IDE/standalone), provereno rade kako treba i nije problem u sinhronizaciji jer kao sto rekoh probao sam i sa tredom koji samo odradi sleep i nema ama bas nikakvu komunikaciju sa drugim tredovima. Imam ranijeg iskustva sa tredovima na Windows-u i znam kakve zavrzlame mogu da nastanu kada nesto nije dobro osmisljeno.

Inace, "kill ne uspeva da ga ubije bez poruke o gresci" znaci da kada otkucam

kill thread_pid

ne dobijam nikakvu poruku o gresci, ali na spisku tredova ovaj i dalje stoji. U stvari, nisam siguran da kill uopste moze da ubija pojedinacne tredove, samo sam pretpostavio da moze kad vec imaju pid isto kao i procesi. A pid sam saznao pomocu ps tj. pstree programa.

Ja sam ti zahvalan na odgovorima i ulozenom trudu i vremenu, ali ovaj problem je zaista nebitan zato sto a) ne utice na rad programa i b) kod korisnika se ne ispoljava.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Kylix3/RH9: thread-ovi ne umiru

[ Pregleda: 3251 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.