Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Soo the parameter to Thread.new is a function that blocks on the parent thread, before a new thread is even created?


Ruby (and most languages) evaluates the arguments before passing them through to the function. So it first evaluates server.accept, which blocks until a new connection, then passes the return value through to Thread.new which spawns the new thread.

The parameters to Thread.new are just passed straight through to the block.


Ahhh! I thought it was passing the accept function and not its result. Been too long, ruby! Thanks guys :)


Yep, that's exactly what's happening. A little confusing because ruby doesn't require brackets for zero argument function calls.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: