[Barrelfish-users] publish/subscribe with send, notify and wait

Lucian Cojocar cojocar at gmail.com
Mon Oct 3 02:58:41 CEST 2011


On 10/02/2011 09:33 PM, Simon Peter wrote:
> Hi Lucian,
> 
>> I need to implement a publish/subscribe mechanism, i.e. all processes
>> that are waiting (are subscribed) for an event will be waken up when a
>> condition/event has occurred.
>>
>> What is the easiest way to do this?
>>
>> Is there a notify/wait mechanism (server) already implemented? How about
>> the send/recv primitives?
> 
> You might want to have a look at the semaphore implementation in chips.
> You can also use names in the nameserver directly to wait for an event.
> E.g. everyone waits for a certain name to be resolved. They will be
> woken up when that name is published.
> 
>> What is the easiest way to send messages between processes (dispatchers)?
> 
> The regular Barrelfish message passing primitives. I.e. create an
> interface definition and bind to it via Flounder. The specifics are
> explained in the IDC technote (#11).
> 
> Hope this helps,
> Simon

I did try to make something similar to sem_wait implementation, I've
defined an interface and bind to it. I was expecting the following
behaviour: If the server (which implements the rx_*_call functions)
didn't reply to the RPC calls using the *_response__tx, then the caller
*would block* (i.e. the RPC calls are blocking). But the RPC call didn't
block, it just returns imediately, even though the server doesn't
replies to the calls. Am I missing something?

Thanks,
Lucian



More information about the Barrelfish-users mailing list