Non-blocking version.