When you cancel the push operation, I assume the control will return to the caller (or not?). Then when you call the completion, will it "return again"? How does that work?