I’m trying to port a resource manager for a data acquisition board
that reads the board, then notifies clients when enough data is ready
for them to read. This was formerly done using proxies: saving a list
of client processes ids and triggering a proxy each time there was
enough data. I was looking at the ionotify set of functions to
re-implement this functionality, and have met with limited success. I
am finding the documentation a little confusing on several points.
1.) It seems like the client must re-call ionotify() after it receives
a pulse triggered by the server. Am I correct? Can I make my client
register for permanent notification within this framework?
2.) The iofunc_notify_t array given to iofunc_notify() and
iofunc_notify_trigger() seems like it should be able to arm
notifications for multiple clients (iofunc_notify_t has a count and
list fields), yet in the documentation of iofunc_notify() it says
under possible returns “EBUSY - A notification was already armed for
this resource, and this library function enforces a restriction of one
per resource.”
Can only 1 client (at a time) register to receive a notification pulse
using this set of functions?
For my stated goals, would I be better off just using pulses that my
server sends directly to implement this functionality?
Thanks in advance for any help any of you can give me.
Pete