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 int
SHARED_LOCK_CLOSED
private static java.util.concurrent.atomic.AtomicIntegerFieldUpdater<AutoCloseBase>
SHARED_LOCK_UPDATER
private int
sharedLock
-
Constructor Summary
Constructors Constructor Description AutoCloseBase()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description (package private) void
acquireSharedLock()
For private library usage only.void
close()
(package private) abstract void
doClose()
(package private) void
releaseSharedLock()
(package private) void
storeFence()
-
-
-
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:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
-
-