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  }