58 lines
1.8 KiB
Java
58 lines
1.8 KiB
Java
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(isInitialized());
|
|
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 (isInitialized());
|
|
setUseAdaptiveMutex(nativeHandle_, useAdaptiveMutex);
|
|
return this;
|
|
}
|
|
|
|
@Override protected void disposeInternal() {
|
|
assert(isInitialized());
|
|
disposeInternal(nativeHandle_);
|
|
}
|
|
|
|
private native void newComparatorOptions();
|
|
private native boolean useAdaptiveMutex(final long handle);
|
|
private native void setUseAdaptiveMutex(final long handle,
|
|
final boolean useAdaptiveMutex);
|
|
private native void disposeInternal(long handle);
|
|
}
|