Interaction with L4

Peter Nguyen peter.nguyen at ...29...
Sat Jan 30 03:35:18 CET 2010


 > Is 'sampbuffer' declared as a local variable? If yes, this would
> explain the problem. When the program leaves the scope where
> 'sampbuffer' is declared, the destructor of 'Io_mem_connection'
> gets executed. By default, this destructor closes the session such
> that the session's dataspace gets destroyed. You can solve this
> problem in two ways. First, it is possible to tell 'sampbuffer'
> to keep the session open after the destuctor is called:
>
>   sampbuffer.on_destruction(Io_mem_connection::KEEP_OPEN);
>
> Another solution would be declaring 'sampbuffer' als local static
> variable. Once constructed, one object instance will exist for the
> whole runtime of the program. Of course, you could also explicitely
> manage the lifetime of 'sampbuffer' by using the 'new' operator but
> in most cases (if you need one session during the whole execution
> time), a declaring the connection object as local static variable
> is most convenient.

The sampbuffer variable is not declared as a local variable. I have also tried
keeping the session open as you suggested, but with no success. Just for the
record, the message I keep getting is the following:

no RM attachment (READ pf_addr=20 pf_ip=2001248 from 08)virtual void
Genode::Signal_session_component::submit(Genode::Signal_context_capability,
unsigned int): invalid signal-context capability

Peter




More information about the users mailing list