1. A computer program product tangibly stored on a computer readable hardware storage device, the computer program product for managing constrained computing devices, the computer program product comprising instructions to cause a processor to: schedule user-defined independently executable functions to execute from a single stack common to all user-defined independently executable functions by the processor according to availability and priority of the user-defined independently executable functions relative to other user-defined independently executable functions, with the instructions to schedule further causing the processor to: identify a particular user-defined independently executable function as ready to run, which user-defined independently executable functions is of higher priority than a user-defined independently executable function currently running; execute a direct call to a wrap function that wraps the particular user-defined independently executable function; preempt the currently running user-defined independently executable function by the instructions placing the particular wrapped user-defined independently executable function on the single stack that has register values for the currently running user-defined independently executable function, pushing down the state data of the currently running user-defined independently executable function lower in the stack; execute the particular user-defined independently executable function; and pop from the stack those register values of the particular user-defined independently executable function, after execution of the particular user-defined independently executable function.