Conc Versions Save

Better structured concurrency for go

v0.3.0

1 year ago

Some notable changes in this release:

  • pool: All pool types now panic if configured after use.
  • pool: ContextPool and ResultContextPool now always cancels its context when Wait() returns.
  • pool: ContextPool and ResultContextPool now cancels its context when a task panics.
  • panics: panics.RecoveredPanic and panics.NewRecoveredPanic(...) have been renamed panics.Recovered and panics.NewRecovered(...) respectively.
  • panics: panics.Recovered no longer implements error directly, which would previously have unintended side effects - instead, it can be converted into an error implementation explicitly with (*Recovered).AsError().
  • panics: Added a package-level panics.Try(...) for recovering from panics from a single function.
  • multierrors: For pools that return multiple errors:

Full changelog: https://github.com/sourcegraph/conc/compare/v0.2.0...v0.3.0

Some of the changes listed above are breaking changes - this package is currently pre-1.0, and there are likely to be other breaking changes before a 1.0 release as we stabilize the APIs and tweak defaults. Please open an issue if you have questions, concerns, or requests that you'd like addressed before the 1.0 release. Currently, a 1.0 is targeted for March 2023.

v0.2.0

1 year ago

Some notable changes in this release:

  • pool: ContextPool and ResultContextPool no longer cancel on the first task that errors by default. To enable cancellation on first error, use WithCancelOnError.
  • panics: conc.PanicCatcher and conc.RecoveredPanic have been moved to a new subpackage, panics.
  • iter: Added iter.Iterator and iter.Mapper for configurable concurrency on ForEach, Map, and friends. The top-level iter.ForEach, etc will continue to work as before.
  • conc: Added WaitGroup.WaitAndRecover, which returns any recovered panics instead of re-panicking them.

Full changelog: https://github.com/sourcegraph/conc/compare/v0.1.0...v0.2.0

Some of the changes listed above are breaking changes - this package is currently pre-1.0, and there are likely to be other breaking changes before a 1.0 release as we stabilize the APIs and tweak defaults. Please open an issue if you have questions, concerns, or requests that you'd like addressed before the 1.0 release. Currently, a 1.0 is targeted for March 2023.

v0.1.0

1 year ago