Minkoo Seo wrote: > Robert Klemme wrote: >> 2006/4/29, Vlad GALU <vladgalu / gmail.com>: >>> I'd like to use Ruby for a quite high performance networking tool. >>> In practice, writing a multithreaded C/C++ program is not pheasible >>> due to the large connection pool I plan to manage, which would impose >>> a very scarce stack size. From what I can see, Ruby's default I/O >>> semantics are synchronous. One can opt for using IO#select though. >>> Let's just say synchronous is OK, API-wise. My question is: if I use >>> one (Ruby) thread per client, would it block the whole Ruby >>> interpreter while performing blocking I/O ? >> >> No. You can have a multi threaded application that uses blocking IO >> (interface wise) concurrently. > > I can't understand this. If ruby uses non native multithreading, then > all threads will run in the same process. And that implies that one > blocking I/O operation stop the all threads in the ruby interpreter > process, doesn't it? > This is indeed an interesting question, one that hasn't been cleared enough in the Ruby docs, I feel. It seems that there's also a difference between Windows and Unixes here. If someone could elaborate, it will be great. -- Posted via http://www.ruby-forum.com/.