// +build OMIT // Package tomb provides a Context implementation that is canceled when either // its parent Context is canceled or a provided Tomb is killed. package tomb import ( "golang.org/x/net/context" tomb "gopkg.in/tomb.v2" ) // NewContext returns a Context that is canceled either when parent is canceled // or when t is Killed. func NewContext(parent context.Context, t *tomb.Tomb) context.Context { ctx, cancel := context.WithCancel(parent) go func() { select { case <-t.Dying(): cancel() case <-ctx.Done(): } }() return ctx }