remove reentrant lock and blocking wait strategy