Golang. Ошибка записи в канал
В приложении в одной части в канал пишутся данные через горутину. В другой части эти данные считываются.
При прерывании работы программы, возникает ошибка с записью в канал. Получается, что система держит N потоков с одной строчкой ch <- data
в ожидании выполнения. Если до того, как все данные будут обработаны, прервать работу приложения, то возникает panic.
Что ещё интереснее, recovery()
не помог решить вопрос с panic.
Если чтение из канала ещё можно проверить так - data, ok := <- ch
, то как обработать ошибку записи в канал? И можно ли?