Signed-off-by: Alexander Morozov <lk4d4@docker.com> Upstream-commit: f2614f2107c838d014d31b806e3b8a9f1395cb2b Component: engine
14 lines
357 B
Go
14 lines
357 B
Go
package agent
|
|
|
|
import "golang.org/x/net/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():
|
|
}
|
|
}
|