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

Reply via email to