fixed deadlock on empty async channels