gsocket: use cancellable child source