Explore >> Select a destination


You are here

grpc.io
| | konradreiche.com
4.9 parsecs away

Travel
| | Starting a goroutine is as easy as adding the go keyword in front of a method, but managing the lifecycle of a goroutine is not. If you only need to start a few goroutines and wait for their completion, you are off the hook thanks to sync.WaitGroup. However, what if a goroutine has to run for a specific duration or repeatatly in a loop until the initiating code terminates? Does it matter? After all, if the main goroutine terminates, any other goroutine will also stop. It does matter, because depending on what the goroutines are doing, it might leave your system in an inconsistent or invalid state. Channels are a commonly used to signal to a goroutine that it can shut down, but I often see the use of a signaling channel, for example chan bool or chan struct{}...
| | ghvsted.com
5.0 parsecs away

Travel
| | The Go context package was developed to make it easy to pass request-scoped values, deadlines, and cancellation signals across API boundaries and processes. Thinking about Context in non-technical terms(?the circumstances that form the setting for an event, statement, or idea, and in terms of which it can be fully understood?) for a start could help us better understand Context as used technically. The context package comes in very handy when working with servers, making HTTP requests, and a host of othe...
| | matttproud.com
3.5 parsecs away

Travel
| | Pop quiz, hot shot: what is the behavior of func f (as defined below) when it is called from a bare gRPC method or HTTP handler as go f(ctx) using the context.Context provided to the handler?1 1 2 3 4 5 6 7 8 9 10 11 func f(ctx context.Context) { // Flimsily make it improbable for this function to continue while the // handler is serving. time.Sleep(time.Second) select { case <-time.
| | www.benjystanton.co.uk
26.5 parsecs away

Travel
| Hi, I'm Benjy Stanton, a contract interaction designer based in Swansea.