Re: Threads killen
"Florian G. Pflug" <[email protected]> Fri, 16 May 2003 01:57:23 +0200
| Newsgroups | gmane.comp.lang.ruby.german |
|---|---|
| Message-ID | <[email protected]> |
On Thu, May 15, 2003 at 09:07:32AM +0200, Mauricio Fernández wrote: > > > Warum? Die Systemaufrufe sind alle "kurz" und Ruby muss nicht darauf > > > warten... > > Aber ruby lieÃt denke ich die standard-ausgabe des childs. Und normalerweise > Nicht mit system, glaube ich; der Childprozess erbt die Standardausgabe > Rubys und wird darin schreiben. Nur würde Ruby auf die Ausgabe warten, > wenn Kernel::` (oder popen) benuztz wäre, aber noch in diesem Fall können > andere Threads wegen der nichtblockierenden E/A weiter laufen (wie in > deinem Mail angegeben). da hast du recht... system lieà stdout vom child nicht, sondern das child erb das stdout vom parent... > > Ruby verwendet zwar non-blocking io, um dieses problem zu umgehen, > > (siehe meine andere mail im gleichen (mail)thread) - > > aber die gestellte frage macht schon sinn. > > Sinn macht es ja, und die Antwort ist "Kernel::system blockiert die > andere Threads nicht", oder? Ja, sage ich auch.. die erste antwort klang bloà so, als würde ruby schon blocken (und zwar alle threads), würde die ausgabe gelesen werden... Ich wollte da bloà klarstellen, daà das nicht so ist.... greetings, Florian Pflug