diff --git a/src/main/java/org/lmdbjava/Env.java b/src/main/java/org/lmdbjava/Env.java index 0a4c034..db8b0f4 100644 --- a/src/main/java/org/lmdbjava/Env.java +++ b/src/main/java/org/lmdbjava/Env.java @@ -41,6 +41,7 @@ import java.util.List; import jnr.ffi.Pointer; +import jnr.ffi.byref.IntByReference; import jnr.ffi.byref.PointerByReference; import org.lmdbjava.Library.MDB_envinfo; import org.lmdbjava.Library.MDB_stat; @@ -500,6 +501,15 @@ private void validatePath(final File path) { validateDirectoryEmpty(path); } + + /* Check for stale entries in the reader lock table. */ + public int readerCheck() { + final IntByReference resultPtr = new IntByReference(); + checkRc(LIB.mdb_reader_check(ptr, resultPtr)); + return resultPtr.intValue(); + } + + /** * Object has already been closed and the operation is therefore prohibited. */ @@ -530,6 +540,7 @@ public AlreadyOpenException() { } } + /** * Builder for configuring and opening Env. * @@ -595,6 +606,7 @@ public Env open(final File path, final EnvFlags... flags) { return open(path, 0664, flags); } + /** * Sets the map size. * diff --git a/src/main/java/org/lmdbjava/Library.java b/src/main/java/org/lmdbjava/Library.java index 44b1749..e48def7 100644 --- a/src/main/java/org/lmdbjava/Library.java +++ b/src/main/java/org/lmdbjava/Library.java @@ -291,7 +291,7 @@ int mdb_put(@In Pointer txn, @In Pointer dbi, @In Pointer key, @In Pointer data, int flags); - int mdb_reader_check(@In Pointer env, int dead); + int mdb_reader_check(@In Pointer env, @Out IntByReference dead); int mdb_set_compare(@In Pointer txn, @In Pointer dbi, ComparatorCallback cb);