@Override
          public void contextAction(@NotNull SuspendContextImpl suspendContext) {
            // re-setting the context will cause value recalculation
            try {
              setContext(myStoredEvaluationContext);
            }
            finally {
              semaphore.up();
            }
          }
@Override
          public void contextAction(@NotNull SuspendContextImpl suspendContext)