Re: Threads killen
Mauricio Fernández <[email protected]> Thu, 15 May 2003 09:07:32 +0200
| Newsgroups | gmane.comp.lang.ruby.german |
|---|---|
| Message-ID | <[email protected]> |
On Thu, May 15, 2003 at 12:42:17AM +0200, Florian G. Pflug wrote: > On Thu, May 15, 2003 at 12:10:24AM +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). > (sofern man das nicht umschaltet) ist file-io (und d.h auch io auf pipes, > sockets, ...) unter unix blocking. d.h - wenn man read() aufruft, und es > gibt nix zu lesen, blockt man solange bis was da ist. > > 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? -- _ _ | |__ __ _| |_ ___ _ __ ___ __ _ _ __ | '_ \ / _` | __/ __| '_ ` _ \ / _` | '_ \ | |_) | (_| | |_\__ \ | | | | | (_| | | | | |_.__/ \__,_|\__|___/_| |_| |_|\__,_|_| |_| Running Debian GNU/Linux Sid (unstable) batsman dot geo at yahoo dot com Because I don't need to worry about finances I can ignore Microsoft and take over the (computing) world from the grassroots. -- Linus Torvalds