Re: Threads killen
Mauricio Fernández <[email protected]> Thu, 15 May 2003 00:10:24 +0200
| Newsgroups | gmane.comp.lang.ruby.german |
|---|---|
| Message-ID | <[email protected]> |
On Wed, May 14, 2003 at 10:10:20PM +0200, jonnypichler - bse wrote: > hi > > ich hab recently mit ähnlichen problemen gekämpft... > > was mich wundert: wie kannst du überhaupt die kill-methode aufrufen solange > das child läuft - meine erfahrung ist, dass bei einem system()-call dem > ruby-interpreter die kontrolle solange entzogen wird, bis der Ruby benutzt fork und dann execl (wenn das Program mit /bin/sh läuft) oder execv. > system()-prozess terminiert ist, auch wenn dieser in einem thread gestartet > wird. > macht ja auch sinn, weil rubythreads ja nur ruby-internal sind (siehe dein > quellenverweis). > oder kommt das nur daher, dass ich ruby unter win32 und nicht unter linux > verwende? Verstehe nicht warum Ruby auf den Prozess warten sollte... In UN*X (und Cygwin auch, oder?) wird fork verwendet, so dass die andere Threads nicht blockiert werden; in Win32, CreateChild (scheint etwa wie fork zu sein). > zitat aus "programming ruby" hierzu: > ...And if some thread happens to make a call to the operating system that > takes a long time to complete, all threads will hang until the interpreter > gets control back. > > ich denke dieses "gets control back" geschieht erst durch das ende des > child-prozesses... Warum? Die Systemaufrufe sind alle "kurz" und Ruby muss nicht darauf warten... > freue mich auf antwort, > patrick > ___ > ruby version i'm currently using: > ruby 1.6.8 (2002-12-24) [i686-cygwin] > -- _ _ | |__ __ _| |_ ___ _ __ ___ __ _ _ __ | '_ \ / _` | __/ __| '_ ` _ \ / _` | '_ \ | |_) | (_| | |_\__ \ | | | | | (_| | | | | |_.__/ \__,_|\__|___/_| |_| |_|\__,_|_| |_| Running Debian GNU/Linux Sid (unstable) batsman dot geo at yahoo dot com On the Internet, no one knows you're using Windows NT -- Submitted by Ramiro Estrugo, [email protected]