finish reentrant