Reviewers: ,
Please review this at http://codereview.tryton.org/153005/ Affected files: M trytond/backend/sqlite/database.py Index: trytond/backend/sqlite/database.py =================================================================== --- a/trytond/backend/sqlite/database.py +++ b/trytond/backend/sqlite/database.py @@ -9,6 +9,7 @@ import datetime import time import sys +import threading _FIX_ROWCOUNT = False try: @@ -88,19 +89,20 @@ class Database(DatabaseInterface): - _memory_database = None + _local = threading.local() _conn = None def __new__(cls, database_name=':memory:'): - if database_name == ':memory:' \ - and cls._memory_database: - return cls._memory_database + if (database_name == ':memory:' + and hasattr(cls._local, 'memory') + and cls._local.memory_database): + return cls._local.memory_database return DatabaseInterface.__new__(cls, database_name=database_name) def __init__(self, database_name=':memory:'): super(Database, self).__init__(database_name=database_name) if database_name == ':memory:': - Database._memory_database = self + Database._local.memory_database = self def connect(self): if self.database_name == ':memory:': -- [email protected] mailing list
