On Tue, Nov 04, 2008 at 07:04:54AM -0500, Ben Guthro wrote:
I'll respond now while I'm looking at this, as Dave may
not be able to get to this until later today
I was talking with Dave about this yesterday, and if I'm not
mistaken, this idea comes from some of the implementations for
either DevKit, DBus, or libHAL (I can't remember which one he
was looking at at that particular moment)
Essentially, if I understand the model correctly, they have 2
fd sets - one for reading, one for writing.
DevKit & HAL are just APIs built ontop of DBus, so the key here
is integration with DBus watch APIs. AFAIK, those only require
that the event loop impl have one callback per unique FD.
I could see an additional use where you have multiple callbacks
- one for data, and one for error handling. These 2 calls to
AddHandle would take the sale fd, but would have different event
mask sets, for the different callbacks.
QT allows this model for its QSocketNotifier class, indeed it
actually requires it, but GLib leaves this unspecified, and
I've not been able to determine from the code whether its possible
to register the same FD twice with GLib.
Daniel
--
|: Red Hat, Engineering, London -o-
http://people.redhat.com/berrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org -o-
http://ovirt.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|