diff roundup/backends/back_gadfly.py @ 1333:80d27b7d6db5

implemented whole-database locking
author Richard Jones <richard@users.sourceforge.net>
date Thu, 12 Dec 2002 09:31:04 +0000
parents 6c24a86a12ae
children d1bfb479e527
line wrap: on
line diff
--- a/roundup/backends/back_gadfly.py	Wed Dec 11 11:37:07 2002 +0000
+++ b/roundup/backends/back_gadfly.py	Thu Dec 12 09:31:04 2002 +0000
@@ -1,4 +1,4 @@
-# $Id: back_gadfly.py,v 1.29 2002-10-07 00:52:51 richard Exp $
+# $Id: back_gadfly.py,v 1.30 2002-12-12 09:31:04 richard Exp $
 ''' Gadlfy relational database hypderb backend.
 
 About Gadfly
@@ -36,6 +36,7 @@
 from roundup import hyperdb, date, password, roundupdb, security
 from roundup.hyperdb import String, Password, Date, Interval, Link, \
     Multilink, DatabaseError, Boolean, Number
+from roundup.backends import locking
 
 # basic RDBMS backen implementation
 from roundup.backends import rdbms_common
@@ -51,6 +52,13 @@
 
     def open_connection(self):
         db = getattr(self.config, 'GADFLY_DATABASE', ('database', self.dir))
+
+        # lock it
+        lockfilenm = os.path.join(db[1], db[0]) + '.lck'
+        self.lockfile = locking.acquire_lock(lockfilenm)
+        self.lockfile.write(str(os.getpid()))
+        self.lockfile.flush()
+
         if len(db) == 2:
             # ensure files are group readable and writable
             os.umask(0002)

Roundup Issue Tracker: http://roundup-tracker.org/