private void watch(final String key, final Future<Boolean> f) {
    if (executorService != null && storageListener != null) {
      executorService.execute(new Runnable() {
        public void run() {
          try {
            storageListener.storeResult(key, f.get());
          } catch (Exception e) {
            storageListener.errorStoring(key, e);
          }
        }
      });
    }
  }
Push a value into the cache.

This is a wrapper around set that throttles and retries on full queues.

@param <T> the type being stored
@param k the key
@param value the value
@return the future representing the stored data
src/main/java/net/spy/memcached/util/CacheLoader.java