double reentrant