NewClientCallback called on the new goroutine
NewClientCallback called on the new goroutine

NewClientCallback should be called on the new routine. in this way, it will never block new client connection. To test that try to add timer.Sleep in NewClientCallback callback function, this will prevent the server accepting new connection.
firstrow/tcp_server