diff options
| author | Barry Warsaw | 2013-10-24 20:38:39 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2013-10-24 20:38:39 -0400 |
| commit | b4d3a036b5949c6945b13416615cfd356a327ee2 (patch) | |
| tree | 005fb17df2571caba1a706e4ffd30511083e633b /src/mailman/database/factory.py | |
| parent | d370397e38f6357612811ba55af7fdee4552b59e (diff) | |
| parent | b36b316a74cf06affbd709b3a3f3a3cfac6921c0 (diff) | |
| download | mailman-b4d3a036b5949c6945b13416615cfd356a327ee2.tar.gz mailman-b4d3a036b5949c6945b13416615cfd356a327ee2.tar.zst mailman-b4d3a036b5949c6945b13416615cfd356a327ee2.zip | |
Diffstat (limited to 'src/mailman/database/factory.py')
| -rw-r--r-- | src/mailman/database/factory.py | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/mailman/database/factory.py b/src/mailman/database/factory.py index bf4d0df7a..f02354c11 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,14 @@ 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() + return database |
