Package com.github.luben.zstd
Class AutoCloseBase
- java.lang.Object
-
- com.github.luben.zstd.AutoCloseBase
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
- Direct Known Subclasses:
SharedDictBase,ZstdCompressCtx,ZstdDecompressCtx
abstract class AutoCloseBase extends java.lang.Object implements java.io.Closeable
-
-
Field Summary
Fields Modifier and Type Field Description private static intSHARED_LOCK_CLOSEDprivate static java.util.concurrent.atomic.AtomicIntegerFieldUpdater<AutoCloseBase>SHARED_LOCK_UPDATERprivate intsharedLock
-
Constructor Summary
Constructors Constructor Description AutoCloseBase()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description (package private) voidacquireSharedLock()For private library usage only.voidclose()(package private) abstract voiddoClose()(package private) voidreleaseSharedLock()(package private) voidstoreFence()
-
-
-
Field Detail
-
SHARED_LOCK_UPDATER
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<AutoCloseBase> SHARED_LOCK_UPDATER
-
SHARED_LOCK_CLOSED
private static final int SHARED_LOCK_CLOSED
- See Also:
- Constant Field Values
-
sharedLock
private volatile int sharedLock
-
-
Method Detail
-
storeFence
void storeFence()
-
acquireSharedLock
void acquireSharedLock()
For private library usage only. This call must be paired with a try block withreleaseSharedLock()in the finally block.
-
releaseSharedLock
void releaseSharedLock()
-
doClose
abstract void doClose()
-
close
public void close()
- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable
-
-