Что закрывает канал kotlinx.coroutines

Что закрывает канал kotlinx.coroutines, используя channel.close (), и каков будет отрицательный эффект от ручного закрытия каналов? Если я не закрою канал вручную, будет какая-то ненужная обработка? Будет ли ссылка на канал где-нибудь, что мешает ей быть GCd? Или функция закрытия просто существует как способ информирования потенциальных пользователей канала, что он больше не может использоваться.

(Вопрос, отправленный с форума Kotlin https://discuss.kotlinlang.org/t/closing-coroutine-channels/2549 )

Закрытие канала концептуально работает, отправив специальный «токен» по этому каналу. Вы закрываете канал, когда у вас есть конечная последовательность элементов, которые будут обрабатываться потребителями, и вы должны сообщить потребителям, что эта последовательность закончена. Вам не нужно закрывать канал иначе.

Каналы не привязаны к какому-либо собственному ресурсу, и их не нужно закрывать, чтобы освободить их память. Просто удалить все ссылки на канал в порядке. GC придет, чтобы очистить его.