summaryrefslogtreecommitdiff
path: root/src/mailman/database/factory.py
diff options
context:
space:
mode:
authorBarry Warsaw2013-09-01 11:15:08 -0400
committerBarry Warsaw2013-09-01 11:15:08 -0400
commitd146f14b3eef9f608c0e03347c135062bade8ced (patch)
tree5a1f2f576dd7d5dcce4d6903df5cc4b6cb754815 /src/mailman/database/factory.py
parent41059ed20ec668baf41cceaf539f8017171e9651 (diff)
downloadmailman-d146f14b3eef9f608c0e03347c135062bade8ced.tar.gz
mailman-d146f14b3eef9f608c0e03347c135062bade8ced.tar.zst
mailman-d146f14b3eef9f608c0e03347c135062bade8ced.zip
Diffstat (limited to 'src/mailman/database/factory.py')
-rw-r--r--src/mailman/database/factory.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/mailman/database/factory.py b/src/mailman/database/factory.py
index bf4d0df7a..bae3fdc11 100644
--- a/src/mailman/database/factory.py
+++ b/src/mailman/database/factory.py
@@ -27,8 +27,10 @@ __all__ = [
]
+import os
import types
+from flufl.lock import Lock
from zope.component import getAdapter
from zope.interface import implementer
from zope.interface.verify import verifyObject
@@ -47,13 +49,15 @@ class DatabaseFactory:
@staticmethod
def create():
"""See `IDatabaseFactory`."""
- database_class = config.database['class']
- database = call_name(database_class)
- verifyObject(IDatabase, database)
- database.initialize()
- database.load_migrations()
- database.commit()
- return database
+ with Lock(os.path.join(config.LOCK_DIR, 'dbcreate.lck')):
+ database_class = config.database['class']
+ database = call_name(database_class)
+ verifyObject(IDatabase, database)
+ database.initialize()
+ database.load_migrations()
+ database.commit()
+ import sys; print('db -> done', os.getpid(), file=sys.stderr)
+ return database