Checked for interruption on reentrant lock or upgrade
Added more tests