use gio for watching fd