Update of /cvsroot/mailman/mailman/Mailman
In directory sc8-pr-cvs1:/tmp/cvs-serv11657/Mailman
Modified Files:
Tag: Release_2_1-maint
Pending.py
Log Message:
repend(): An interface for putting request data back into the request
database.
Index: Pending.py
===================================================================
RCS file: /cvsroot/mailman/mailman/Mailman/Pending.py,v
retrieving revision 2.9.2.2
retrieving revision 2.9.2.3
diff -u -d -r2.9.2.2 -r2.9.2.3
--- Pending.py 22 Sep 2003 02:58:13 -0000 2.9.2.2
+++ Pending.py 1 Dec 2003 00:56:11 -0000 2.9.2.3
@@ -62,10 +62,9 @@
# It's a programming error if this assertion fails! We do it this way so
# the assert test won't fail if the sequence is empty.
assert content[:1] in _ALLKEYS
-
# Get a lock handle now, but only lock inside the loop.
- lock = LockFile.LockFile(LOCKFILE,
- withlogging=mm_cfg.PENDINGDB_LOCK_DEBUGGING)
+ lock = LockFile.LockFile(
+ LOCKFILE, withlogging=mm_cfg.PENDINGDB_LOCK_DEBUGGING)
# We try the main loop several times. If we get a lock error somewhere
# (for instance because someone broke the lock) we simply try again.
retries = mm_cfg.PENDINGDB_LOCK_ATTEMPTS
@@ -128,7 +127,6 @@
if content is missing:
return None
return content
-
# Get a lock handle now, but only lock inside the loop.
lock = LockFile.LockFile(LOCKFILE,
withlogging=mm_cfg.PENDINGDB_LOCK_DEBUGGING)
@@ -166,6 +164,22 @@
+def repend(cookie, data):
+ # Get a lock
+ lock = LockFile.LockFile(
+ LOCKFILE, withlogging=mm_cfg.PENDINGDB_LOCK_DEBUGGING)
+ lock.lock()
+ try:
+ # Load the database
+ db = _load()
+ db[cookie] = data
+ db['evictions'][cookie] = time.time() + mm_cfg.PENDING_REQUEST_LIFE
+ _save(db, lock)
+ finally:
+ lock.unlock()
+
+
+
def _load():
# The list's lock must be acquired if you wish to alter data and save.
#
@@ -190,6 +204,7 @@
fp.close()
+
def _save(db, lock):
# Lock must be acquired before loading the data that is now being saved.
if not lock.locked():
_______________________________________________
Mailman-checkins mailing list
[EMAIL PROTECTED]
Unsubscribe: http://mail.python.org/mailman/options/mailman-checkins/archive%40jab.org