Nobody III
2016-06-28 19:51:37 UTC
In my fs_filter component (much like the vfs server), I am trying to allow
multiple clients fast, non-blocking access to multiple filesystems. To do
this without several threads, my component needs to know when each
filesystem server unblocks so it can send more packets. Unfortunately, the
File_system::Client interface (which File_system::Connection inherits)
doesn't provide a way to receive signals when the server acknowledges
packets or is ready for more packets, given that it only provides a
Session:Tx::Source object for accessing the packet stream. The
Session::Tx::Source interface provide the methods sigh_ack_avail() and
sigh_ready_to_submit(), which allow a cilent to get the signal handlers
currently in use, but doesn't allow registering new signal handlers. I
added a workaround that exposes the Packet_stream_tx::Client object to the
client, but it would be good to have a better way to register these signal
handlers. Is there currently a way to do this, or does this require a
modification to the API, like what I did?
multiple clients fast, non-blocking access to multiple filesystems. To do
this without several threads, my component needs to know when each
filesystem server unblocks so it can send more packets. Unfortunately, the
File_system::Client interface (which File_system::Connection inherits)
doesn't provide a way to receive signals when the server acknowledges
packets or is ready for more packets, given that it only provides a
Session:Tx::Source object for accessing the packet stream. The
Session::Tx::Source interface provide the methods sigh_ack_avail() and
sigh_ready_to_submit(), which allow a cilent to get the signal handlers
currently in use, but doesn't allow registering new signal handlers. I
added a workaround that exposes the Packet_stream_tx::Client object to the
client, but it would be good to have a better way to register these signal
handlers. Is there currently a way to do this, or does this require a
modification to the API, like what I did?