#include "lmdbbackend.hh"
#include <pdns/arguments.hh>
#include <pdns/base32.hh>
+#include <pdns/lock.hh>
#if 0
#define DEBUGLOG(msg) L<<Logger::Error<<msg
#define DEBUGLOG(msg) do {} while(0)
#endif
+pthread_mutex_t LMDBBackend::s_initlock = PTHREAD_MUTEX_INITIALIZER;
+
LMDBBackend::LMDBBackend(const string &suffix)
{
setArgPrefix("lmdb"+suffix);
if( MDB_VERINT( major, minor, patch ) < MDB_VERINT( 0, 9, 8 ) )
throw PDNSException( "LMDB Library version too old (" + verstring + "). Needs to be 0.9.8 or greater" );
+ Lock l(&s_initlock);
+
if( (rc = mdb_env_create(&env)) )
throw PDNSException("Couldn't open LMDB database " + path + ": mdb_env_create() returned " + mdb_strerror(rc));
*/
#include <lmdb.h>
+#include <pthread.h>
#include <pdns/dnsbackend.hh>
class LMDBBackend : public DNSReversedBackend
void open_db();
void close_db();
inline bool get_finished();
+ static pthread_mutex_t s_initlock;
public:
LMDBBackend(const string &suffix="");