Threads killen
Markus Walser <[email protected]> Wed, 14 May 2003 17:39:03 +0200
| Newsgroups | gmane.comp.lang.ruby.german |
|---|---|
| Organization | Supercomputing Systems AG |
| Message-ID | <[email protected]> |
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? Viele Gruesse, Markus
try.rb
(text/plain, 358 B)
#!/usr/bin/ruby
class Worker
def initialize
end
def start(&action)
@thr = Thread.new{
action.call
}
end
def abort
if @thr!=nil && @thr.alive?
@thr.kill
puts "killed worker thread"
end
end
end
aWorker = Worker.new
aWorker.start {
system("while [ 1 ] ; do ls > /dev/null; done")
}
sleep 5
aWorker.abort
sleep 5