genode/base/src
Alexander Boettcher 7868156b19 base: fix deadlock in core_env on base-nova
During a ram_session->free call in 'core' the lock in core_env.h is taken.
Then in the ram_session::_free_ds implementation the dissolve function for the
dataspace is called. base-nova tries to make sure that the ds is not
accessible anymore by any kind of parallel incoming IPC by performing a
cleanup IPC. Unfortunately the dataspace_session implementation uses the very
same allocator in 'core' and may require to obtain the same lock as taken in
ram_session->free. This leads to a spurious deadlock on base-nova.

The actual free_ds implementation is mostly thread safe, since all used objects
inside there are already locked. The only missing piece is the _payload
variable. By changing the _payload variable in a atomic fashion there is no
need to lock the whole ram_session->free call which avoids deadlocks on
base-nova.

Fixes #549
2013-02-11 12:01:26 +01:00
..
base base: fix wrap around bug in avl allocator 2013-01-24 11:05:02 +01:00
core base: fix deadlock in core_env on base-nova 2013-02-11 12:01:26 +01:00
lib Support for building all libs via 'make lib' 2012-01-24 18:56:35 +01:00
platform Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
test Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
README Imported Genode release 11.11 2011-12-22 16:19:25 +01:00

This directory contains all source codes.