]> Cypherpunks repositories - gostls13.git/commit
cmd/go/internal/par: add Queue as a simpler alternative to Work
authorBryan C. Mills <bcmills@google.com>
Mon, 10 Aug 2020 19:11:07 +0000 (15:11 -0400)
committerBryan C. Mills <bcmills@google.com>
Mon, 24 Aug 2020 21:08:46 +0000 (21:08 +0000)
commit95df156e6ac53f98efd6c57e4586c1dfb43066dd
treeabb169b4571b6720b512dfb68ffc5bb5b3057895
parent865d72f962fffbba326067e803ca30193b63bd3a
cmd/go/internal/par: add Queue as a simpler alternative to Work

par.Work performs two different tasks: deduplicating work (a task
which overlaps with par.Cache), and executing limited active work in
parallel. It also requires the caller to re-invoke Do whenever the
workqueue transititions from empty to non-empty.

The new par.Queue only performs the second of those two tasks, and
presents a simpler API: it starts and stops its own goroutines as
needed (indicating its idle state via a channel), rather than
expecting the caller to drive the transitions explicitly.

For #36460

Change-Id: I5c38657dda63ab55718497467d05d41744ff59f2
Reviewed-on: https://go-review.googlesource.com/c/go/+/247766
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
src/cmd/go/internal/par/queue.go [new file with mode: 0644]
src/cmd/go/internal/par/queue_test.go [new file with mode: 0644]