Depending on definition Reentrancy (= Interrupt Safety) and Thread Safety are two different things.
Reentrant: Reentrant functions can be called recursively and can be called simultaneously by two or more processes. Reentrant functions are often required in real-time applications or in situations where interrupt code and non-interrupt code must share a function (see Keil).
Thread Safe: Thread-safe code only manipulates shared data structures in a manner that ensures that all threads behave properly and fulfill their design specifications without unintended interaction (see Wikipedia). Thread-Safety is required when using an operating system and functions are called by different threads.