make invoking a cancel message sync(call) instead of async(cast)