Ian Bicking: the old part of his blog

Re: The Concurrency Model Debate

Just a thing, AFAICT, ruby threads does not block the whole interpreter on I/O operations, this operations are automatically multiplexed, so if a thread is locked reading on a socket or whatever, another one can still does what he wants, just try this:

Thread.new {puts gets} while true

System Message: ERROR/3 (<string>, line 5)

Unexpected indentation.
puts "working flawlessly with locked IO" sleep 4

System Message: WARNING/2 (<string>, line 7)

Block quote ends without a blank line; unexpected unindent.

end

(there are pther issues with non native threads, but not this one)

Comment on The Concurrency Model Debate