adj. Refers to code which can safely be called from interrupts or in other circumstances in which it is possible that another instance of the code is simultaneously active. Reentrant code has to be very careful of the way it manipulates data: the data must either all be local, or else protected by semaphores or the like.
a program that does not modify itself. A single copy of a reentrant program can be shared by several users or tasks.
A reentrant subprogram is a subprogram which can be in invoked any number of times in parallel, without interference between the various invocations. See A Pure (Reentrant) Parser.
A computer program or routine is described as reentrant if it can be safely called recursively or from multiple processes. To be reentrant, a function must hold no static data, must not return a pointer to static data, must work only on the data provided to it by the caller, and must not call non-reentrant functions.