mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-24 05:18:02 +00:00
caac994da8
Prior to this commit, whenever an external event occurred, for example timer or interrupt, the corresponding I/O signal handler was triggered. This handler unblocked the task waiting for the event and initiated the immediate execution of all unblocked tasks. Since these tasks may hit serialization points, e.g. synchronously waiting for packet stream operations, that require handling of other I/O signals this leads to nested execution. This, however, is not supported and mixes application and I/O level signal handling. The flagging of the scheduling intent is now decoupled from its execution by using an application level signal handler that is run in the context of the components main entrypoint. The I/O signal handler now triggers the scheduling execution by sending a local signal to the EP. Since it might be necessary to execute a pending schedule from the EP directly the scheduler is extended with the 'execute' member function that performs the check that the scheduler is called from within the EP and triggers the execution afterwards. Issue #4927. |
||
---|---|---|
.. | ||
lib | ||
recipes | ||
run | ||
src | ||
README |
================================ Genode support for x86-based PCs ================================ This repository complements the Genode OS framework (https://genode.org) with the board support needed to use Genode on devices based on x86 PCs. License ------- Genode-specific code is provided under Genode's regular open-source license, which is AGPLv3 + open-source linking exception. This code is also available under a commercial license offered by Genode Labs. For code ported from other projects - e.g., device drivers ported from the Linux kernel - the license of the originating upstream project applies. Please refer to the individual file headers for detailed information.