update sample, change to non-blocking operation