Mutex deadlock
the current locking implementation leads to an deadlock.
func (c *Client) Start() (bool, error)
is blocking. After a connection has been successfully established, the method is not left and consequently not deferred until stop is called (impossible, because of the lock) or an error appears.
Edited by cyberta