I
Ian Leitch
[Note: parts of this message were removed to make it a legal post.]
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
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