The Coro::AnyEvent module has a few numbers to implement common forms of "waiting for something", for example Coro::AnyEvent::poll looks as if it were the function you want.
Coro only makes thread switches when it must, and will only poll for events when it must - as long as you have a thread to run it will run that one.