content: package org.rocksdb;
  
  /**
   * This class controls the behaviour
   * of Java implementations of
   * AbstractComparator
   *
   * Note that dispose() must be called before a ComparatorOptions
   * instance becomes out-of-scope to release the allocated memory in C++.
   */
  public class ComparatorOptions extends RocksObject {
    public ComparatorOptions() {
      super(newComparatorOptions());
    }
  
    /**
     * Use adaptive mutex, which spins in the user space before resorting
     * to kernel. This could reduce context switch when the mutex is not
     * heavily contended. However, if the mutex is hot, we could end up
     * wasting spin time.
     * Default: false
     *
     * @return true if adaptive mutex is used.
     */
    public boolean useAdaptiveMutex() {
      assert(isOwningHandle());
      return useAdaptiveMutex(nativeHandle_);
    }
  
    /**
     * Use adaptive mutex, which spins in the user space before resorting
     * to kernel. This could reduce context switch when the mutex is not
     * heavily contended. However, if the mutex is hot, we could end up
     * wasting spin time.
     * Default: false
     *
     * @param useAdaptiveMutex true if adaptive mutex is used.
     * @return the reference to the current comparator options.
     */
    public ComparatorOptions setUseAdaptiveMutex(final boolean useAdaptiveMutex) {
      assert (isOwningHandle());
      setUseAdaptiveMutex(nativeHandle_, useAdaptiveMutex);
      return this;
    }
  
    private native static long newComparatorOptions();
    private native boolean useAdaptiveMutex(final long handle);
    private native void setUseAdaptiveMutex(final long handle,
        final boolean useAdaptiveMutex);
    @Override protected final native void disposeInternal(final long handle);
  }
  