So my setup is that I have launch {...} coroutine ...
# coroutines
So my setup is that I have launch {...} coroutine which works in cycle and does a thing... after doing a thing it yields() and everything is fine. But "theThing" is custom part of my application... actually function which is variable on the class, and by design one can replace the function with something else... But the problem is that I can't pass function references which are suspending functions, so all I can pass is just a function, which by definition is blocking... if it' s short, then it's fine... but if it' s something longer, then I woul like to have coroutine as well... and I have exact case... that I want to bind on channel and receive something, so what I ended up is that "theThing" is reference to function (nonsuspending) whic is simple "runBlocking" coroutine... otherwise I can't call channel.send or .receive But I feel that even then I am still blocking the lunch{... } coroutine