From acf20f77f34502e0513666cac46688156cb79f33 Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Sun, 28 Jul 2013 17:02:51 -0700 Subject: [PATCH] Tweak mdb_envinfo numreaders Return the actual shared reader count when it exists, not just the current process env's reader count. --- libraries/liblmdb/mdb.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libraries/liblmdb/mdb.c b/libraries/liblmdb/mdb.c index 23f1ecd..595cb65 100644 --- a/libraries/liblmdb/mdb.c +++ b/libraries/liblmdb/mdb.c @@ -7682,7 +7682,12 @@ mdb_env_info(MDB_env *env, MDB_envinfo *arg) arg->me_mapaddr = (env->me_flags & MDB_FIXEDMAP) ? env->me_map : 0; arg->me_mapsize = env->me_mapsize; arg->me_maxreaders = env->me_maxreaders; - arg->me_numreaders = env->me_numreaders; + + /* me_numreaders may be zero if this process never used any readers. Use + * the shared numreader count if it exists. + */ + arg->me_numreaders = env->me_txns ? env->me_txns->mti_numreaders : env->me_numreaders; + arg->me_last_pgno = env->me_metas[toggle]->mm_last_pg; arg->me_last_txnid = env->me_metas[toggle]->mm_txnid; return MDB_SUCCESS;