$ go run _examples/main.go
# will fail because the last task returns an error
$ go run _examples/main.go -timeout 1s
# will fail due to context timeout
$ go run _examples/main.go
# press ctrl-c
# will cancel the context due to interrupt and error
Run executes a given task with a given context, dealing with its timeouts,
cancels and SIGTERM and SIGINT signals.
It will return an error if the context is canceled, if deadline exceeds,
if a SIGTERM or SIGINT is received and of course if the task itself fails.