[gtkmm] I/O Connection::disconnect() doesn't work as expected.



using g[td]kmm-1.3.21.

My app calls Glib::signal_io.connect to watch various file
descriptors, and this generally works.

When my callback function returns 'false', the callback is no longer
called. This is good.

When my callback calls 'connection.disconnect()', then returns 'true',
the interface does not update and an strace shows mad calls to poll().

Shouldn't these be the same? I am assuming that the Connection object
returned from the connect() call affects the same underlying
connection that is affected by my callback's return value, so if I
disconnect the signal, I expect the callback's return value not to
matter.

Or is the connection implicitly 'used up' when my callback is called,
and regenerated wwhen it returns 'true', so calling
connection.disconnect() is undone by returning 'true'.

I hope this is understandable; I'm not sure what all the proper terms
are.

(CC's of replies appreciated but not necessary)

Eric Buddington
ebuddington wesleyan edu



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]