MutableSharedFlow and MutableStateFlow (via inheritance) include both the emit suspend function and the best effort, non-suspend tryEmit. But FlowCollector only includes emit in the interface. It seems to me the there no reason why the
FlowCollector can't provide tryEmit as well given that it's safe enough to include in
It would be useful to be able to emit into a 'collector' interface like
FlowCollector without launching a coroutine and dealing with the lifecycle issues coming from that. so why the omission?