Changed read to non-canonical, to use built-in timeout