import (
"log"
"os"
)
// use channel
func doWork() error {
// … your work here …
return fmt.Errorf("something went wrong")
}
func main() {
errCh := make(chan error, 1)
go func() {
if err := doWork(); err != nil {
errCh <- err
}
close(errCh)
}()
// block until either we get an error or the channel closes
if err, ok := <-errCh; ok {
log.Printf("worker error: %v", err)
os.Exit(1)
}
log.Println("worker completed successfully")
}
No comments:
Post a Comment