go /
net /
a67aa9969843eb9fe6ac8353af4a28381d490e8e go.net/context: split the implementations of Background, WithValue,
WithCancel, and WithTimeout to use different concrete types. Update the
tests and documentation.
This change reduces the size of context structs, reduces the number of
allocations (see TestAllocs) and removes unnecessary pointers from the
heap, such as the timer field for non-timer contexts.
IMPORTANT: I've removed the code in these functions that handles nil Context parameters. Passing a nil parent Context will now cause a panic.
LGTM=bcmills
R=bcmills, crawshaw
CC=adonovan, golang-codereviews, rsc
https://golang.org/cl/116400043
2 files changed