Hi Sourav,

On 03/12/2017 07:46 PM, sourav punoriyar wrote:
> but, it gets stuck in *fibril_condvar_wait.*
>     while (!discovery_finished) {
>         *fibril_condvar_wait*(&discovery_cv, &discovery_lock);
>     }

Assuming we are now talking about the output server's chardev.c. The
code is supposed to block on this condition variable in chardev_init()
until the device specified in the boot args as console puts itself in
the "serial" location service category and gets discovered there by
check_for_dev().

If it blocks there indefinitely, something must have gone wrong. Either
the boot arg specification of the console device is wrong or the driver
failed to initialize and put itself in the "serial" category.

Btw, this is a fairly standard synchronization primitive, so you might
actually enjoy reading a bit about it and other synchronization
primitives in some operating systems text book.

> Can you also point me towards the documents which gives some insight of
> IPC implementation in HelenOS.

There is a slightly outdated article on our wiki:

http://www.helenos.org/wiki/IPC

and a follow-up article:

http://www.helenos.org/wiki/AsyncSessions

HTH,
Jakub

_______________________________________________
HelenOS-devel mailing list
[email protected]
http://lists.modry.cz/listinfo/helenos-devel

Reply via email to