suspend fun drain(collector: FlowCollector<T>, onCrash: (ResumableCollector<T>) -> Unit = null): Unit