No description
Find a file
Changkun Ou 0976fa681c x/sync/errgroup: add TryGo and SetLimit to control concurrency
This benchmark shows the difference between two implementations.
Using explicit waiter with mutex (old, before PS3) or channel (new,
since PS4). There is no significant difference at a measure:

name  old time/op    new time/op    delta
Go-8     247ns ±10%     245ns ±10%     ~     (p=0.571 n=5+10)

name  old alloc/op   new alloc/op   delta
Go-8     48.0B ± 0%     40.0B ± 0%  -16.67%  (p=0.000 n=5+10)

name  old allocs/op  new allocs/op  delta
Go-8      2.00 ± 0%      2.00 ± 0%     ~     (all equal)

Fixes golang/go#27837

Change-Id: I60247f1a2a1cdce2b180f10b409e37de8b82341e
Reviewed-on: https://go-review.googlesource.com/c/sync/+/405174
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: Heschi Kreinick <heschi@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Changkun Ou <mail@changkun.de>
Auto-Submit: Bryan Mills <bcmills@google.com>
2022-05-13 21:05:16 +00:00
errgroup x/sync/errgroup: add TryGo and SetLimit to control concurrency 2022-05-13 21:05:16 +00:00
semaphore all: go fmt ./... 2021-02-20 03:29:51 +00:00
singleflight singleflight: fix flaky TestForget 2020-10-20 16:03:32 +00:00
syncmap all: go fmt ./... 2021-02-20 03:29:51 +00:00
AUTHORS initial commit 2015-10-30 14:31:46 +11:00
codereview.cfg .: add codereview.cfg 2016-12-06 01:46:32 +00:00
CONTRIBUTING.md CONTRIBUTING.md: remove note about not accepting Pull Requests 2018-03-14 18:01:46 +00:00
CONTRIBUTORS initial commit 2015-10-30 14:31:46 +11:00
go.mod all: add a go.mod file 2019-02-27 15:59:43 +00:00
LICENSE initial commit 2015-10-30 14:31:46 +11:00
PATENTS initial commit 2015-10-30 14:31:46 +11:00
README.md README.md: add badge to pkg.go.dev 2020-12-07 23:25:20 +00:00

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.

Download/Install

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

Report Issues / Send Patches

This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://golang.org/doc/contribute.html.

The main issue tracker for the sync repository is located at https://github.com/golang/go/issues. Prefix your issue with "x/sync:" in the subject line, so it is easy to find.