genode/repos/base/src/lib
Norman Feske 3897ddea03 cxx: don't rely on global ctors
This patch removes the global variable 'blocker', which was expected to
be constructed via the global ctors. This mechanism, however, is not
used for the base library, which resulted in the use of an unconstructed
object. Specifically, the spinlock of the 'Lock' of the 'Registry'
defaulted to the LOCKED state (value 0), which eventually would lead to
a deadlock in the contention case of the cxa guard.

I could observe this deadlock once on during the component startup on
base-linux during the construction of the 'startup_lock'.

This patch fixes the problem by explicitly initializing the registry
of blockers via an init function.

Issue #2299
Issue #3578
2019-12-19 17:00:48 +01:00
..
alarm timeout: use uint64_t for all plain time values 2019-05-06 16:15:26 +02:00
base base: disarm atexit handling for signal thread 2019-12-19 17:00:48 +01:00
cxx cxx: don't rely on global ctors 2019-12-19 17:00:48 +01:00
ldso cxx: don't rely on global ctors 2019-12-19 17:00:48 +01:00
startup cxx: don't rely on global ctors 2019-12-19 17:00:48 +01:00
timeout base: explictly target entrypoint in timer session 2019-11-21 14:29:36 +01:00
target.mk Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00