[Barrelfish-users] One question about the bootup process

borni at isep.ipp.pt borni at isep.ipp.pt
Fri Oct 14 21:45:14 CEST 2011

Hi everybody! 

As I understood from the code, binding with the local
monitor is performed during the bootup process for the domains that are not
initial (all except init, monitor and mem_serv) through the method
"monitor_client_lmp_bind" in lib/barrelfish/monitor_client.c. It consists
of sending the endpoint to the monitor, registering for receive events and
performing the continuation which in this case only sets the variable
request_done = true. When the bootup process continues there is a
while-loop that confused me, given below (method "barrelfish_init_onthread"
in lib/barrelfish/init.c): 

 request_done = false;
 err =
monitor_client_lmp_bind(mcb, monitor_bind_cont, 
 if (err_is_fail(err)) {

return err_push(err, LIB_ERR_MONITOR_CLIENT_BIND);

 // dispatch events
on the waitset until monitor binding completes
 while (!request_done) {

err = event_dispatch(default_ws);
 if (err_is_fail(err)) {
err_push(err, LIB_ERR_EVENT_DISPATCH);

My question, is there a
possibility of reaching the while loop with boolean value still being
false? And if so (monitor binding is still not complete), which events can
be dispatched on the waitset since even monitor binding is not complete at
that stage? I am asking because I think that while-loop is not needed at
all, and if that's not true than I am missing something fundamental here.

Thanks in advance! 

Borislav Nikolic
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.inf.ethz.ch/pipermail/barrelfish-users/attachments/20111014/f3a2e51c/attachment.html 

More information about the Barrelfish-users mailing list