gcancellable: update GCancellableSource, fix a race condition