Change GSourceFunc to be async