I think if the current thread sleeps, then another threads which want to make a connection with the same remoteAddr enter into that code area and also sleep if the connection is refused. So all the threads is going to sleep if the connection refused occurs. So, I'm not sure if I should block all the threads explicitly.