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

Lucian Cojocar cojocar at gmail.com
Mon Oct 3 13:51:27 CEST 2011


On 10/03/2011 02:58 AM, Lucian Cojocar wrote:
> 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?
>


Well, I didn't bind correctly for RPC (didn't call *_rpc_client_init) so
now it works.

What is the meaning of this line, from Hakefile:
flounderExtraBindings = [ ("some interface", ["rpcclient"])]

Thanks,
Lucian



More information about the Barrelfish-users mailing list