Okay, so I just tried it so what did and did not work. I used this line to register my callback and file descriptor
Glib::signal_io().connect(sigc::mem_fun(*this, &Action::onPoll), from, Glib::IO_IN | Glib::IO_HUP);
Which should, as I understand it, read something like this.
"Glib::signal_io()" Get the default signal-io object
"connect" Connect a file descriptor
nPoll)" The slot referring to the callback method.
"from" the name of the file descriptor
"Glib::IO_IN | Glib::IO_HUP" call the callback when there is data to read or the file descriptor closes
This works partially, the callback is being called for the HUP, but not when there's new I/O.