Partial fix #1876, check thread in block_txn_start()

Don't allow use of existing batch txn if it's from the wrong thread
This commit is contained in:
Howard Chu 2017-03-19 12:27:03 +00:00
parent df140d90ee
commit d3aaf74080
No known key found for this signature in database
GPG Key ID: FD2A70B44AB11BA7
1 changed files with 2 additions and 1 deletions

View File

@ -2503,7 +2503,8 @@ void BlockchainLMDB::block_txn_start(bool readonly)
throw0(DB_ERROR_TXN_START(lmdb_error("Failed to create a transaction for the db: ", mdb_res).c_str())); throw0(DB_ERROR_TXN_START(lmdb_error("Failed to create a transaction for the db: ", mdb_res).c_str()));
} }
memset(&m_wcursors, 0, sizeof(m_wcursors)); memset(&m_wcursors, 0, sizeof(m_wcursors));
} } else if (m_writer != boost::this_thread::get_id())
throw0(DB_ERROR_TXN_START((std::string("Attempted to start new write txn when batch txn already exists in ")+__FUNCTION__).c_str()));
} }
void BlockchainLMDB::block_txn_stop() void BlockchainLMDB::block_txn_stop()