interrupt based read