Additional Go concurrency primitives

Clone this repo:


  1. 6e8e738 errgroup: fix go vet "copy lock value" warning by Cholerae Hu · 4 months ago master
  2. 43a5402 semaphore: unblock waiters when the front waiter cancels by 徐志强 · 7 months ago
  3. cd5d95a syncmap: use type alias for Map by Eric Rutherford · 1 year, 1 month ago
  4. 1122301 semaphore: better error message when releasing more than held by Jean de Klerk · 1 year, 5 months ago
  5. 56d3577 singleflight: fix duplicate deleting key when Forget called by LE Manh Cuong · 1 year, 6 months ago

Go Sync

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.