У меня есть блокировка в сторонней библиотеке, которую я не контролирую. Это может потенциально уйти навсегда. Поэтому я хочу установить таймаут на нем. Очевидным способом является обернуть его каналом и goroutine, а затем выбрать результат с помощью time.After
. Тем не менее, проблема в том, что goroutine, выполняющий операцию блокировки, может потенциально уйти навсегда.отменить операцию блокировки в Go
Ниже приведен пример для иллюстрации этого http://repl.it/90o
Есть ли способ, чтобы отменить goroutine или иметь его мусор?
Является ли библиотека сторонних разработчиков открытым исходным кодом? Возможно, вы можете исправить это для них и отправить запрос на вытягивание. – tgrosinger