Write our own GSource impl. for more efficiency.