Add mdb_env_get_fd()

Return the environment's filedescriptor. Useful when the caller
is doing their own locking.
vmware
Howard Chu 11 years ago
parent dddc7a385b
commit b86f08e9d6
  1. 12
      libraries/liblmdb/lmdb.h
  2. 10
      libraries/liblmdb/mdb.c

@ -679,6 +679,18 @@ int mdb_env_get_flags(MDB_env *env, unsigned int *flags);
*/
int mdb_env_get_path(MDB_env *env, const char **path);
/** @brief Return the filedescriptor for the given environment.
*
* @param[in] env An environment handle returned by #mdb_env_create()
* @param[out] fd Address of a mdb_filehandle_t to contain the descriptor.
* @return A non-zero error value on failure and 0 on success. Some possible
* errors are:
* <ul>
* <li>EINVAL - an invalid parameter was specified.
* </ul>
*/
int mdb_env_get_fd(MDB_env *env, mdb_filehandle_t *fd);
/** @brief Set the size of the memory map to use for this environment.
*
* The size should be a multiple of the OS page size. The default is

@ -7817,6 +7817,16 @@ mdb_env_get_path(MDB_env *env, const char **arg)
return MDB_SUCCESS;
}
int
mdb_env_get_fd(MDB_env *env, mdb_filehandle_t *arg)
{
if (!env || !arg)
return EINVAL;
*arg = env->me_fd;
return MDB_SUCCESS;
}
/** Common code for #mdb_stat() and #mdb_env_stat().
* @param[in] env the environment to operate in.
* @param[in] db the #MDB_db record containing the stats to return.

Loading…
Cancel
Save