break;
case RECOVERY_WAIT:
finalizing.compareAndSet(NONE, RECOVERY_WAIT);
FinalizationStatus cur = finalizing.get();
res = cur == RECOVERY_WAIT || cur == RECOVERY_FINISH;
break;
case RECOVERY_FINISH:
FinalizationStatus old = finalizing.get();
res = old != USER_FINISH && finalizing.compareAndSet(old, status);
break;