выполняется долго. В рамках функции можно узнать, какой процент работ выполнен. Как в произвольный момент времени вне функции получить информацию о том, сколько работы выполнено/осталось?
Зачем: прогрессбар.
Мои варианты (кажутся неверными):
Либо писать в какую-то переменную вне функции (не нравится потому что data race потенциально можно получить), либо в канал (не нравится потому, что если из него не читать, к чтению принуждать не хочется).
чем каналы то не угодили? зачем "принуждать к чтению“?
А следить за прогрессом надо нескольким горутинам?
Если просто прогресс, то я бы через атомарные операции менял бы переменную с прогрессом, а в другом месте вычитывал бы с какой-то периодичностью, опять же используемая атомики.
atomic
Обсуждают сегодня