Explore >> Select a destination


You are here

matttproud.com
| | antonz.org
4.2 parsecs away

Travel
| | Multi-errors, context cancellation cause, new date formats, and other notable changes.
| | konradreiche.com
3.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{}.
| | healeycodes.com
3.7 parsecs away

Travel
| | Writing an interpreter from scratch.
| | blog.jak-linux.org
46.2 parsecs away

Travel
| (What follows is an excerpt from my master's thesis, almost all of section 2.1, quickly introducing Go to people familiar with CS) Go is an imperative programming language for concurrent programming created at and mainly developed by Google, initially mostly by Robert Griesemer, Rob Pike, and Ken Thompson. Design of the language started in 2007, and an initial version was released in 2009; with the first stable version, 1.0 released in 2012 1.