Mercurial > hg > orthanc-databases
diff Framework/Common/DatabaseManager.h @ 231:0a9b48d19643
removed mutex out of DatabaseManager
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 06 Apr 2021 11:59:31 +0200 |
parents | a4918d57435c |
children | 35598014f140 |
line wrap: on
line diff
--- a/Framework/Common/DatabaseManager.h Tue Apr 06 11:17:00 2021 +0200 +++ b/Framework/Common/DatabaseManager.h Tue Apr 06 11:59:31 2021 +0200 @@ -27,18 +27,21 @@ #include <Compatibility.h> // For std::unique_ptr<> #include <Enumerations.h> -#include <boost/thread/recursive_mutex.hpp> #include <memory> namespace OrthancDatabases { + /** + * WARNING: In PostgreSQL releases <= 3.3 and in MySQL releases <= + * 3.0, this class was protected by a mutex. It is now assumed that + * locking must be implemented at a higher level. + **/ class DatabaseManager : public boost::noncopyable { private: typedef std::map<StatementLocation, IPrecompiledStatement*> CachedStatements; - boost::recursive_mutex mutex_; std::unique_ptr<IDatabase> database_; std::unique_ptr<ITransaction> transaction_; CachedStatements cachedStatements_; @@ -86,10 +89,9 @@ class Transaction : public boost::noncopyable { private: - boost::recursive_mutex::scoped_lock lock_; - DatabaseManager& manager_; - IDatabase& database_; - bool committed_; + DatabaseManager& manager_; + IDatabase& database_; + bool committed_; public: explicit Transaction(DatabaseManager& manager, @@ -114,11 +116,10 @@ class StatementBase : public boost::noncopyable { private: - DatabaseManager& manager_; - boost::recursive_mutex::scoped_lock lock_; - ITransaction& transaction_; - std::unique_ptr<Query> query_; - std::unique_ptr<IResult> result_; + DatabaseManager& manager_; + ITransaction& transaction_; + std::unique_ptr<Query> query_; + std::unique_ptr<IResult> result_; IResult& GetResult() const;