Use non-blocking IO