Closing a Go channel written by several goroutines
In this article I show a solution to the problem of closing a Go channel that is being written by several goroutines. We see the process and reasoning to get to a solution and in this path we use several standard Go tools like closing channels for synchronization, atomic types, select and wait groups.