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