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/