code: @MainThread
      public void change(T obj) {
          if (!isLockEnabled) {
              throw new RuntimeException("changing of values only cen be performed in locked state");
          }
  
          modifiedValue = obj;
          notifyInMainThread(modifiedValue);
      }
docs: Can be executed only between create/release lock calls