Когда использовать callbackFlow для многократных колбэков
Нужно обернуть многократный callback‑API в поток и при этом гарантировать отписку при отмене коллекции; callbackFlow создает холодный Flow и вызывает блок при каждом новом сборе, что подходит для многослушателей.
ProducerScope внутри callbackFlow безопасно сохраняет контекст и может вызываться из разных потоков, но блок завершается сразу при выходе и поэтому awaitClose обязателен чтобы удержать поток живым и корректно отписаться от внешнего API.
По умолчанию используется канал с дефолтным буфером, поэтому при риске переполнения применяйте оператор buffer на результирующем Flow или конфигурируйте канал стратегии передачи внутри блока; register/unregister внешнего API должны быть потокобезопасны, потому что awaitClose может выполниться одновременно с колбэком.
• Используйте callbackFlow для многократных callback‑API с гарантией отписки.
• Обязательно вызвать awaitClose внутри блока, иначе возможна утечка ресурсов.
#Kotlin