From e08c0e55eec777b9bf1eb907c78cecd4c8859c8e Mon Sep 17 00:00:00 2001 From: tsmethurst Date: Mon, 3 Jan 2022 17:37:09 +0100 Subject: add gruf worker pool --- vendor/codeberg.org/gruf/go-runners/context.go | 36 ++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 vendor/codeberg.org/gruf/go-runners/context.go (limited to 'vendor/codeberg.org/gruf/go-runners/context.go') diff --git a/vendor/codeberg.org/gruf/go-runners/context.go b/vendor/codeberg.org/gruf/go-runners/context.go new file mode 100644 index 000000000..edb695060 --- /dev/null +++ b/vendor/codeberg.org/gruf/go-runners/context.go @@ -0,0 +1,36 @@ +package runners + +import ( + "context" + "time" +) + +// ContextWithCancel returns a new context.Context impl with cancel. +func ContextWithCancel() (context.Context, context.CancelFunc) { + ctx := make(cancelctx) + return ctx, func() { close(ctx) } +} + +// cancelctx is the simplest possible cancellable context. +type cancelctx (chan struct{}) + +func (cancelctx) Deadline() (time.Time, bool) { + return time.Time{}, false +} + +func (ctx cancelctx) Done() <-chan struct{} { + return ctx +} + +func (ctx cancelctx) Err() error { + select { + case <-ctx: + return context.Canceled + default: + return nil + } +} + +func (cancelctx) Value(key interface{}) interface{} { + return nil +} -- cgit v1.2.3