Package: wnpp
Severity: wishlist
Owner: Maytham Alsudany <maytha8thedev@gmail.com>
X-Debbugs-CC: debian-devel@lists.debian.org, debian-go@lists.debian.org
Control: block 1067867 by -1
* Package name : golang-github-joshuarubin-lifecycle
Version : 1.1.4
Upstream Contact: https://github.com/joshuarubin/lifecycle/issues
* URL : https://github.com/joshuarubin/lifecycle
* License : Expat
Programming Lang: Go
Description : manage goroutines in golang applications (library)
lifecycle helps manage goroutines at the application level. context.Context
has been great for propagating cancellation signals, but not for getting any
feedback about when goroutines actually finish. This package works with
context.Context to ensure that applications don't quit before their goroutines
do.
.
The semantics work similarly to the go (lifecycle.Go) and defer
(lifecycle.Defer) keywords as well as sync.WaitGroup.Wait (lifecycle.Wait).
Additionally, there are lifecycle.GoErr and lifecycle.DeferErr which only
differ in that they take funcs that return errors.
.
lifecycle.Wait will block until one of the following happens:
- all funcs registered with Go complete successfully then all funcs registered
with Defer complete successfully
- a func registered with Go returns an error, immediately canceling ctx and
triggering Defer funcs to run. Once all Go and Defer funcs complete, Wait
will return the error
- a signal (by default SIGINT and SIGTERM, but configurable with
WithSignals) is received, immediately canceling ctx and triggering Defer
funcs to run. Once all Go and Defer funcs complete, Wait will return
ErrSignal
- a func registered with Go or Defer panics. the panic will be propagated to
the goroutine that Wait runs in. there is no attempt, in case of a panic,
to manage the state within the lifecycle package.
Dependency of golang-github-joshuarubin-go-sway.
This package will be maintained within the Debian Go Packaging Team.
I will need a DD to sponsor and upload this package.
--
Kind regards,
Maytham Alsudany
Attachment:
signature.asc
Description: This is a digitally signed message part