How can I sleep current ruby thread and break from rb_eval_string

Hi all

I have only one thread in ruby side with a infinite loop. I want to
suspend that thread and return to C++ and resume it next frame.

As I known, rb_eval_string can’t return unless all your ruby thread are
finished. Thread.sleep will block your system thread if you have only
one ruby thread. Is that right?

I really want to keep the loop in ruby side. not c++ side.

So how can I do this?

Many thanks!