Do not issue a read() if the socket has been closed.
Use unowned self instead of weak. Should be better? ;-)