non blocking read/write