docs: private void asyncRefresh() {
          // Immediately return if refresh already in progress
          if (asyncRefreshing.compareAndSet(false, true)) {
              try {
                  executor.submit(new Runnable() {
                      @Override
                      public void run() {
                          try {
                              refreshValue();
                          } finally {
                              asyncRefreshing.set(false);
                          }
                      }
                  });
              } catch (RuntimeException ex) {
                  asyncRefreshing.set(false);
                  throw ex;
              }
          }
      }