genode/repos/base-foc/src/core
Stefan Kalkowski 0f05fa6fd4 base: resolve dead lock in weak pointer templates
This commit eliminates the mutual interlaced taking of destruction lock,
list lock and weak pointer locks that could lead to a dead-lock situation
when a lock pointer was tried to construct while a weak object is in
destruction progress.
Now, all weak pointers are invalidated and dequeued at the very
beginning of the weak object's destruction. Moreover, before a weak pointer
gets invalidated during destruction of a weak object, it gets dequeued, and
the list lock is freed again to avoid the former dead-lock.

Fix #1607
2015-07-21 09:30:04 +02:00
..
arm base: remove pager code from public API 2015-07-01 14:46:15 +02:00
arndale base: remove pager code from public API 2015-07-01 14:46:15 +02:00
imx53 base: remove pager code from public API 2015-07-01 14:46:15 +02:00
include base: remove pager code from public API 2015-07-01 14:46:15 +02:00
odroid_x2 foc: Odroid-X2 basic support 2015-07-21 09:28:25 +02:00
panda base: remove pager code from public API 2015-07-01 14:46:15 +02:00
pbxa9 base: remove pager code from public API 2015-07-01 14:46:15 +02:00
rpi base-foc: support for Raspberry Pi 2015-07-06 12:22:26 +02:00
x86 base: remove pager code from public API 2015-07-01 14:46:15 +02:00
x86_32 base: remove pager code from public API 2015-07-01 14:46:15 +02:00
x86_64 base: remove pager code from public API 2015-07-01 14:46:15 +02:00
cap_session_component.cc base: remove local capability from generic base 2015-04-17 16:13:20 +02:00
cpu_session_extension.cc CPU session: apply quota via relative weightings 2015-05-06 10:55:16 +02:00
io_mem_session_support.cc Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
ipc_pager.cc base: remove pager code from public API 2015-07-01 14:46:15 +02:00
irq_session_component.cc foc: increase stack size for IRQ handler 2015-05-26 09:39:52 +02:00
pager.cc base: remove pager code from public API 2015-07-01 14:46:15 +02:00
pd_session_extension.cc Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
platform.cc base: remove shared irq from core 2015-05-26 09:39:47 +02:00
platform_pd.cc base: resolve dead lock in weak pointer templates 2015-07-21 09:30:04 +02:00
platform_thread.cc core: provide thread exec times via TRACE service 2015-06-22 14:43:38 +02:00
ram_session_support.cc base: introduce caching attributes (fix #1184) 2014-06-26 10:57:26 +02:00
rm_session_support.cc Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
signal_source_component.cc Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
target.inc base: remove pager code from public API 2015-07-01 14:46:15 +02:00
thread_start.cc foc: check result of bind_thread 2015-03-13 12:17:24 +01:00