From a156188b3eb5cb3da44aa1b7452265f5fa38a607 Mon Sep 17 00:00:00 2001 From: kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com> Date: Wed, 28 Sep 2022 18:30:40 +0100 Subject: [chore] update dependencies, bump to Go 1.19.1 (#826) * update dependencies, bump Go version to 1.19 * bump test image Go version * update golangci-lint * update gotosocial-drone-build * sign * linting, go fmt * update swagger docs * update swagger docs * whitespace * update contributing.md * fuckin whoopsie doopsie * linterino, linteroni * fix followrequest test not starting processor * fix other api/client tests not starting processor * fix remaining tests where processor not started * bump go-runners version * don't check last-webfingered-at, processor may have updated this * update swagger command * update bun to latest version * fix embed to work the same as before with new bun Signed-off-by: kim Co-authored-by: tsmethurst --- vendor/codeberg.org/gruf/go-runners/service.go | 29 +++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'vendor/codeberg.org/gruf/go-runners/service.go') diff --git a/vendor/codeberg.org/gruf/go-runners/service.go b/vendor/codeberg.org/gruf/go-runners/service.go index c0f878c45..68e8ea384 100644 --- a/vendor/codeberg.org/gruf/go-runners/service.go +++ b/vendor/codeberg.org/gruf/go-runners/service.go @@ -15,7 +15,7 @@ type Service struct { mu sync.Mutex // mu protects state changes } -// Run will run the supplied function until completion, use given context to propagate cancel. +// Run will run the supplied function until completion, using given context to propagate cancel. // Immediately returns false if the Service is already running, and true after completed run. func (svc *Service) Run(fn func(context.Context)) bool { // Attempt to start the svc @@ -39,6 +39,33 @@ func (svc *Service) Run(fn func(context.Context)) bool { return true } +// GoRun will run the supplied function until completion in a goroutine, using given context to +// propagate cancel. Immediately returns boolean indicating success, or that service is already running. +func (svc *Service) GoRun(fn func(context.Context)) bool { + // Attempt to start the svc + ctx, ok := svc.doStart() + if !ok { + return false + } + + go func() { + defer func() { + // unlock single wait + svc.wait.Unlock() + + // ensure stopped + svc.Stop() + }() + + // Run user func + if fn != nil { + fn(ctx) + } + }() + + return true +} + // Stop will attempt to stop the service, cancelling the running function's context. Immediately // returns false if not running, and true only after Service is fully stopped. func (svc *Service) Stop() bool { -- cgit v1.2.3