Reconnect to discoverd when the connection drops

`reconnecting` needs to be protected by a mutex.