How to set a true read/write timeout?
I tried using asynchronous timeout implementation, but although it was able to interrupt asynchronous operations, the underlying synchronous operations seemed to be still blocking, causing me to drop the port and unable to reopen it, which was very bad.