From: Ian Leitch Date: 2009-07-14T02:29:17+09:00 Subject: rb_eval_string blocks on loops even if run inside a thread. --00163630ea9d3930b0046e99a9b4 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Hey, I'm trying to use rb_eval_string to execute a bunch of code and return from it straight away. My problem is that the code I want to eval contains a continuous loop. Even if I wrap the code in a thread the call still blocks due to the loop. Note that I don't get the same behaviour when using eval() outside of the C API. E.g: rb_eval_string("Thread.new { loop { puts 1; sleep 0.2 }}"); <-- blocks eval("Thread.new { loop { puts 1; sleep 0.2 }}") <--- doesn't block My guess is to spawn a ruby thread in C and call rb_eval_string inside that, I can't find any examples of using the thread functions on google though so I'm a bit stuck. Could someone give me a few pointers or perhaps some example code? Many thanks Ian --00163630ea9d3930b0046e99a9b4--