An example of a stoppable TCP listener in Go. This library wraps an existing TCP connection object. A goroutine calling Accept() is interrupted with StoppedError whenever the listener is stopped by a call to Stop(). Usage is demonstrated below, and in example/example.go.
originalListener, err := net.Listen("tcp", ":8080")
if err != nil {
panic(err)
}
sl, err := stoppableListener.New(originalListener)
if err != nil {
panic(err)
}