Ich habe eine Blockierung in einer Bibliothek von Drittanbietern, die ich nicht kontrolliere. Es könnte möglicherweise für immer gehen. Also möchte ich eine Zeitüberschreitung einstellen. Der offensichtliche Weg besteht darin, es mit einem Kanal und einer Goroutine zu umhüllen und dann das Ergebnis mit time.After
auszuwählen. Das Problem ist jedoch, dass die Goroutine, die den Blockiervorgang ausführt, möglicherweise für immer gehen könnte.Abbrechen einer Blockierung in Go
Hier ist ein Beispiel zur Illustration http://repl.it/90o
Gibt es eine Möglichkeit, eine goroutine zu stornieren oder haben es Müll gesammelt?
Ist die Drittanbieter-Bibliothek Open Source? Vielleicht können Sie das für sie reparieren und eine Pull-Anfrage senden. – tgrosinger