Replacing failed TcpClient while somebody else have just obtained it wrecks too much havocs even in single-threaded model. Protect connection manipulations with semaphore.
Merge remote-tracking branch 'github/master'
Cleanup
Fix: Producer got out of scheduled thread in some parts