add the read_write timeout option

- [x] unit test