From: Peter N. <pet...@ad...> - 2010-01-30 02:35:30
|
> 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 |