gmain: handle child sources being destroyed before parent