genode/repos/base/src/include
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
..
base/internal cxx: don't rely on global ctors 2019-12-19 17:00:48 +01:00
pager Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
signal_source Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00