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