Re: Threads killen

Markus Walser <[email protected]> Thu, 15 May 2003 18:57:06 +0200
Newsgroups gmane.comp.lang.ruby.german
Organization Supercomputing Systems AG
Message-ID <[email protected]>
Besten Dank fuer die prompten Antworten und Loesungsvorschlaege!

Viele Gruesse, Markus

On Thursday 15 May 2003 10:58, Mauricio Fernández wrote:
> On Wed, May 14, 2003 at 05:39:03PM +0200, Markus Walser wrote:
> > Hallo
> > Attached ist ein kleines Beispiel, welches leider nicht so funktioniert
> > wie ich mir das vorgestellt habe :-(
> > Was im Buch "Programmieren mit Ruby" Seite 93 ueber Ruby Threads
> > geschrieben steht, hat sich leider bewahrheitet: Der Prozess, welcher mit
> > system gestartet wird, laeuft nach dem kill weiter. Selbst nach beenden
> > des Ruby Skripts ist er noch aktiv.
> >
> > Kennt da jemand einen Workaround oder weiss jemand wie man das sauber
> > machen muesste, damit der mit system gestartete Prozess durch den Aufruf
> > von Thread.kill auch beendet wird?
>
> matz hat gesprochen:
>
> If you want to kill child processes when the thread is down,
>
>   th = Thread.new{
>      Thread.current[:children] = []
>      begin
>        ... add child processes to Thread.current[:children]
>      ensure
>        Process.kill("TERM", *Thread.current[:children])
>      end
>   }
>
> is the way to go.
>
>                                                         matz.