try non-blocking read