Explore >> Select a destination


You are here

ghvsted.com
| | konradreiche.com
3.3 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{}...
| | hypirion.com
3.4 parsecs away

Travel
| | When generics comes out, here's a possible way to use it for typed HTTP servers in Go. As a bonus, there's a short "rant" about how the implementation causes functional programming to be hard.
| | grpc.io
5.0 parsecs away

Travel
| | TL;DR: Always set a deadline. This post explains why we recommend being deliberate about setting deadlines, with useful code snippets to show you how. ...
| | ukiahsmith.com
25.2 parsecs away

Travel
| Often times we need to unmarshal upstream data with unique constraints. Such as custom data types, or custom parsing of specific formats. Using the standard library could be impractical, and handling long structs manually can be tedious; however there is an alternative.