mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-12 07:52:44 +00:00
3897ddea03
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 |
||
---|---|---|
.. | ||
base/internal | ||
pager | ||
signal_source |