singleflight: add panicError.Unwrap method

Currently when singleflight recovers from a panic, it wraps it with the private
error type panicError. This change adds an `Unwrap` method to panicError to
allow wrapped errors to be returned.

Updates golang/go#62511

Change-Id: Ia510ad7d5881207ef71f9eb89c1766835af19b6b
Auto-Submit: Bryan Mills <>
Reviewed-by: Than McIntosh <>
Reviewed-by: Bryan Mills <>
LUCI-TryBot-Result: Go LUCI <>
2 files changed
tree: f7c7f04014a0a6f019c18db1b71e65573a455461
  1. errgroup/
  2. semaphore/
  3. singleflight/
  4. syncmap/
  5. codereview.cfg
  7. go.mod

Go Sync

Go Reference

This repository provides Go concurrency primitives in addition to the ones provided by the language and “sync” and “sync/atomic” packages.


The easiest way to install is to run go get -u You can also manually git clone the repository to $GOPATH/src/

Report Issues / Send Patches

This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see

The main issue tracker for the sync repository is located at Prefix your issue with “x/sync:” in the subject line, so it is easy to find.