Executing application function calls in response to an interrupt including
creating a thread; receiving an interrupt having an interrupt type;
determining whether a value of a semaphore represents that interrupts are
disabled; if the value of the semaphore represents that interrupts are
not disabled: calling, by the thread, one or more preconfigured functions
in dependence upon the interrupt type of the interrupt; yielding the
thread; and if the value of the semaphore represents that interrupts are
disabled: setting the value of the semaphore to represent to a kernel
that interrupts are hard-disabled; and hard-disabling interrupts at the
kernel.