@@ -501,43 +501,27 @@ void LMDB::resolveRegularExpression(const std::string& var,
501501}
502502
503503
504- MDBEnvProvider::MDBEnvProvider () :
505- m_env(NULL ), initialized(false ) {
506- pthread_mutex_init (&m_lock, NULL );
504+ MDBEnvProvider::MDBEnvProvider () : m_env(NULL ) {
505+ MDB_txn *txn;
506+ mdb_env_create (&m_env);
507+ mdb_env_open (m_env, " ./modsec-shared-collections" ,
508+ MDB_WRITEMAP | MDB_NOSUBDIR, 0664 );
509+ mdb_txn_begin (m_env, NULL , 0 , &txn);
510+ mdb_dbi_open (txn, NULL , MDB_CREATE | MDB_DUPSORT, &m_dbi);
511+ mdb_txn_commit (txn);
507512}
508513
509514MDB_env* MDBEnvProvider::GetEnv () {
510- init ();
511515 return m_env;
512516}
513517
514518MDB_dbi* MDBEnvProvider::GetDBI () {
515- init ();
516519 return &m_dbi;
517520}
518521
519- void MDBEnvProvider::init () {
520- pthread_mutex_lock (&m_lock);
521- if (!initialized) {
522- MDB_txn *txn;
523- initialized = true ;
524- mdb_env_create (&m_env);
525- mdb_env_open (m_env, " ./modsec-shared-collections" ,
526- MDB_WRITEMAP | MDB_NOSUBDIR, 0664 );
527- mdb_txn_begin (m_env, NULL , 0 , &txn);
528- mdb_dbi_open (txn, NULL , MDB_CREATE | MDB_DUPSORT, &m_dbi);
529- mdb_txn_commit (txn);
530- }
531- pthread_mutex_unlock (&m_lock);
532- }
533-
534- void MDBEnvProvider::close () {
535- pthread_mutex_lock (&m_lock);
536- if (initialized) {
537- mdb_dbi_close (m_env, m_dbi);
538- mdb_env_close (m_env);
539- }
540- pthread_mutex_unlock (&m_lock);
522+ MDBEnvProvider::~MDBEnvProvider () {
523+ mdb_dbi_close (m_env, m_dbi);
524+ mdb_env_close (m_env);
541525}
542526
543527#endif
0 commit comments