ten SIGKILL - mozne reseni
Dan Lukes
dan at obluda.cz
Mon Sep 15 12:18:21 CEST 2003
Divacky Roman wrote:
> Tak jsem se na to tsleep()ovani poradne podival a prisel jsem na nasledujici:
>
> endtsleep nam v podstate nepomuze pac ony "kriticke" tsleepy se odehravaji v
> necem jako je:
> while(libovolna_podminka)
> tslep(neco);
> takze i kdy prerusime ten tsleep tak nam nabehne znova takze veskera snaha v
> tomto smeru je marna...
To je, IMHO, chybna uvaha. Program, kteremu byl zaslan SIGKILL by mel
byt k jeho obsluze preruseni povolan IHNED jak bude prerusitelny a
vysledkem teto obsluhy bude okamzite ukonceni procesu. Tedy, process
konci IHNED jak skonci neprerusitelny tsleep bez ohledu na to, v jakem
kontextu je ten tsleep pouzit.
Diky tomu se obavam, ze navrzene reseni neresi zadny realne existujici
problem - bud' je s prerusenim neprerusitelneho tsleepu nemozne kvuli
vecem volanym v ramci "zabijeciho" cleanupem procesu - a tento problem
pretrvava i v nove navrzenem reseni. Nebo tento problem ve skutecnosti
neexistuje a pak lze tsleep v pripade SIGKILL bezpecne prerusit i u
"stareho" tsleepu, tak, jak byl uplne puvodni navrh.
> pripominky ocenim (ani ne tak kritiku, jako navrhy na zlepseni :-) )
Nevim, jestli se mi podarilo tuhle podminku splnit ... ;-)
Dan
More information about the Users-l
mailing list