Given that recursion is to be used in a strictly timed environment,
there are several options that can be considered. These are listed
Add more if statements throughout the method
body especially before segments of code that can block to ensure the code
execution gets halted as soon as the time expires. A specific cushion
interval must be implemented to give time for the return statements to
propagate back up the stack.
- Simple to implement.
- Relatively simple and effective.
- Degrades readability of code.
- Does not guarantee execution will fall under specified time.
Port the executive code to a secondary thread
which progressively writes to an object as it executes. The primary thread
can then start a timer while firing off this thread. When the timer expires
the primary thread need only retrieve this object and inform the worker
thread to die.
- Extremely accurate (results retrieved nearly on the dot with delays due
- Does not need a cushion interval - The recursive function can go as
deep as it wants without being tied back by trying to fit the return
propagation within the timer.
- Allows graceful shutdown of the executive code as it is no longer
bounded by time (results are taken and the thread is allowed to die at its
- Multi-threaded - Due to this solution being multi-threaded, it may not
be applicable to every scenario.
- Requires a lot of extra code and possibly changes in some existing code