Bläddra i källkod

Merge pull request #24 from eapache/deadline-goroutine-leak

Fix goroutine leak in deadline
Evan Huus 6 år sedan
förälder
incheckning
b98ce2825f
1 ändrade filer med 5 tillägg och 1 borttagningar
  1. 5 1
      deadline/deadline.go

+ 5 - 1
deadline/deadline.go

@@ -32,7 +32,11 @@ func (d *Deadline) Run(work func(<-chan struct{}) error) error {
 	stopper := make(chan struct{})
 
 	go func() {
-		result <- work(stopper)
+		value := work(stopper)
+		select {
+		case result <- value:
+		case <-stopper:
+		}
 	}()
 
 	select {