Re: Dynamic creation and passing of IPC channels

Adam Lackorzynski <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <[email protected]>
On Mon Nov 25, 2013 at 20:21:07 +0100, Bjoern Doebel wrote:
> > I have two tasks running and communicating through an IPC
> > connection (basically the clntsrv demo). Now I would like to extend
> > this a bit:
> > 
> > 
> > Using an ipc_call(), the client (actually: multiple clients) should
> > be able to register with a server to receive a wakeup IPC at
> > individually different points in time in the future.
> > 
> > (First, flawed idea to do this was to *not* use the combined 
> > reply_and_wait call on the server side but instead to only do a
> > wait() call and then postpone the corresponding reply() until when
> > the client should be woken up. However, I learned that this will
> > not work because the implicit reply capability will be lost as soon
> > as another ipc call is done by the server.)
> > 
> > Next idea now is to create another IPC channel in the client and to
> > pass (via IPC) the send capability for that channel to the server.
> > The client shall than block in an ipc_receive() on that channel and
> > the server can wake it by sending to that channel. I guess this
> > should be possible and for a seasoned Fiasco.OC/L4Re expert it is
> > probably quite easy to do, but I can't seem to find how to:

Another possibility regarding wakeups/notifications is to use L4::Irq's.
They transfer no payload but allow to notify someone else without
requiring an IPC channel. Maybe that's also ok for your use-case?



Adam
-- 
Adam                 [email protected]
  Lackorzynski         http://os.inf.tu-dresden.de/~adam/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.