But when reading pieces from a stream, each piece may be blocking, but returns after reading, also my proposition was to keep on reading while measuring time lapses, if beyond a certain window of idle time of not recieving anything, then you can safely yield... but if all the commands are long running anyways, then I agree you're not gaining much.