You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale/util
Andrew Dunham 93cd2ab224 util/singleflight: add DoChanContext
This is a variant of DoChan that supports context propagation, such that
the context provided to the inner function will only be canceled when
there are no more waiters for a given key. This can be used to
deduplicate expensive and cancelable calls among multiple callers
safely.

Updates #11935

Signed-off-by: Andrew Dunham <andrew@du.nham.ca>
Change-Id: Ibe1fb67442a854babbc6924fd8437b02cc9e7bcf
6 months ago
..
cache util/cache: fix missing interface methods (#11275) 9 months ago
cibuild all: update copyright and license headers 2 years ago
clientmetric util/clientmetric: allow client metric values to be provided by a function 2 years ago
cloudenv all: use math/rand/v2 more 6 months ago
cmpver util/cmpver: add Less/LessEq helper funcs 9 months ago
codegen all: use Go 1.22 range-over-int 7 months ago
cstruct all: use Go 1.22 range-over-int 7 months ago
ctxkey all: use reflect.TypeFor now available in Go 1.22 (#11078) 10 months ago
deephash all: use Go 1.22 range-over-int 7 months ago
dirwalk all: use tstest.Replace more 2 years ago
dnsname all: use Go 1.22 range-over-int 7 months ago
execqueue control/controlclient,util/execqueue: extract execqueue into a package 10 months ago
expvarx all: use Go 1.22 range-over-int 7 months ago
fastuuid all: use Go 1.22 range-over-int 7 months ago
goroutines util/goroutines: let ScrubbedGoroutineDump get only current stack 1 year ago
groupmember util/groupmember: fail earlier if group doesn't exist, use slices.Contains 1 year ago
hashx all: use Go 1.22 range-over-int 7 months ago
httphdr util/httphdr: add new package for parsing HTTP headers (#9797) 1 year ago
httpm util/httpm: don't run test if .git doesn't exist 1 year ago
jsonutil all: use Go 1.22 range-over-int 7 months ago
limiter all: use Go 1.22 range-over-int 7 months ago
lineread all: update copyright and license headers 2 years ago
linuxfw util/linuxfw: don't try cleaning iptables on gokrazy 6 months ago
lru util/lru: add Clear method 6 months ago
mak various: add golangci-lint, fix issues (#7905) 2 years ago
multierr all: use Go 1.22 range-over-int 7 months ago
must all: update copyright and license headers 2 years ago
nocasemaps all: use Go 1.22 range-over-int 7 months ago
osdiag ipn/local: log OS-specific diagnostic information as JSON (#11700) 7 months ago
osshare all: update copyright and license headers 2 years ago
osuser util/osuser: add unit test for parseGroupIds 7 months ago
pidowner all: use Go 1.22 range-over-int 7 months ago
pool util/pool: add package for storing and using a pool of items 6 months ago
precompress all: update copyright and license headers 2 years ago
progresstracking ipn/localapi: add support for multipart POST to file-put 8 months ago
quarantine all: update copyright and license headers 2 years ago
race all: use Go 1.22 range-over-int 7 months ago
racebuild all: update copyright and license headers 2 years ago
rands wgengine/magicsock: use math/rands/v2 6 months ago
reload all: use math/rand/v2 more 6 months ago
ringbuffer all: use Go 1.22 range-over-int 7 months ago
set util/set: add Of variant of SetOf that takes variadic parameter 7 months ago
singleflight util/singleflight: add DoChanContext 6 months ago
slicesx all: use math/rand/v2 more 6 months ago
syspolicy all: do not depend on the testing package 6 months ago
sysresources util/sysresources, magicsock: scale DERP buffer based on system memory 2 years ago
systemd all: update copyright and license headers 2 years ago
testenv util/testenv: add new package to hold InTest 1 year ago
topk all: use Go 1.22 range-over-int 7 months ago
truncate util/truncate: support []byte as well (#11614) 8 months ago
uniq all: use Go 1.22 range-over-int 7 months ago
vizerror util/vizerror: add As function to get wrapped Error 2 years ago
winutil util/winutil: add AllocateContiguousBuffer and SetNTString helper funcs 6 months ago
zstdframe all: use Go 1.22 range-over-int 7 months ago