Signed-off-by: Drew Erny <drew.erny@docker.com> Upstream-commit: 1222a7081ac9ebb0830a6c8008142258c49800b5 Component: engine
14 lines
340 B
Go
14 lines
340 B
Go
package agent
|
|
|
|
import "context"
|
|
|
|
// runctx blocks until the function exits, closed is closed, or the context is
|
|
// cancelled. Call as part of go statement.
|
|
func runctx(ctx context.Context, closed chan struct{}, errs chan error, fn func(ctx context.Context) error) {
|
|
select {
|
|
case errs <- fn(ctx):
|
|
case <-closed:
|
|
case <-ctx.Done():
|
|
}
|
|
}
|