From e609d5dfd7a257804a2ae3422f184534517c8036 Mon Sep 17 00:00:00 2001 From: Jeremy Fincher Date: Tue, 17 Feb 2004 18:10:27 +0000 Subject: [PATCH] Fixed the problem of having multiple upkeeps scheduled. --- src/Owner.py | 2 +- src/world.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Owner.py b/src/Owner.py index 6fe181d98..4e833c645 100644 --- a/src/Owner.py +++ b/src/Owner.py @@ -379,7 +379,7 @@ class Owner(privmsgs.CapabilityCheckingPrivmsg): Runs the standard upkeep stuff (flushes and gc.collects()). """ - collected = world.upkeep() + collected = world.upkeep(scheduleNext=False) if gc.garbage: irc.reply('Garbage! %r' % gc.garbage) else: diff --git a/src/world.py b/src/world.py index 1836b8342..3dfb7b3b3 100644 --- a/src/world.py +++ b/src/world.py @@ -77,7 +77,7 @@ def flush(): except Exception, e: log.exception('Uncaught exception in flusher:') -def upkeep(): +def upkeep(scheduleNext=True): """Does upkeep (like flushing, garbage collection, etc.)""" sys.exc_clear() # Just in case, let's clear the exception info. collected = gc.collect() @@ -107,7 +107,8 @@ def upkeep(): log.info('%s Flushers flushed and garbage collected.', timestamp) else: log.info('%s Garbage collected.', timestamp) - schedule.addEvent(upkeep, time.time() + conf.supybot.upkeepInterval()) + if scheduleNext: + schedule.addEvent(upkeep, time.time() + conf.supybot.upkeepInterval()) return collected def makeDriversDie():