Una subrutina que es directa o indirectamente recursiva debe ser de reentrada.
Esta directiva se aplica parcialmente por los Lenguajes de programación estructurados.
Por el contrario, el código flujos seguros no necesariamente tiene que ser de reentrada (ver más abajo para los ejemplos).
Otros términos utilizados para los programas de reentrada incluyen "procedimiento puro" o "código compartible".
Como tal, no debería haber sido utilizado en el servicio de interrupción rutina isr(): swap() podría hacerse flujos seguros al hacer t hilo local .
En la programación orientada a objetos, datos globales se definen en el alcance de una clase y pueden ser privadas, por lo que es accesible sólo a las funciones de esa clase.
La clave para evitar la confusión es que reentrada se refiere a un solo hilo de ejecución.
Estas versiones ligeramente alterados son reentrantes: En el siguiente fragmento de código C, la función es seguro para subprocesos, pero no por reentrada.
Pero si la función se usa en un manejador de interrupciones reentrante y una segunda interrupción surge dentro de la función, la segunda rutina se colgará para siempre.