github.com/DARA-Project/GoDist-Scheduler@v0.0.0-20201030134746-668de4acea0d/examples/BlockBug/blockbug.go (about) 1 package main 2 3 import "runtime" 4 5 func finishReq(timeout time.Duration) ob { 6 runtime.ReportBlockCoverage("../examples/BlockBug/blockbug.go:3:5") 7 ch := make(chan ob) 8 go func() { 9 runtime.ReportBlockCoverage("../examples/BlockBug/blockbug.go:5:8") 10 result := fn() 11 ch <- result 12 }() 13 runtime.ReportBlockCoverage("../examples/BlockBug/blockbug.go:9:9") 14 select { 15 case result := <-ch: 16 runtime.ReportBlockCoverage("../examples/BlockBug/blockbug.go:10:11") 17 return result 18 case <-time.After(timeout): 19 runtime.ReportBlockCoverage("../examples/BlockBug/blockbug.go:12:13") 20 return nil 21 } 22 }