The obvious semantics for try_recv is to return a message or return immediately if none is available (i.e. peek + recv). That's not what it does though; instead it blocks waiting for a message and returns None when the sender closes the channel.
cc #10138
Nominating.