Revision: 5671 Author: nicdumz Date: 2008-07-05 10:48:13 +0000 (Sat, 05 Jul 2008)
Log Message: ----------- Fixing [ 2009068 ] diskcache files could be deleted when bot finishes :
__del__ is not guaranteed to be called everytime, in particular when reference cycles survive the garbage collection process. Renaming __del__ to delete, and calling it from wikipedia::stopme
Modified Paths: -------------- trunk/pywikipedia/diskcache.py trunk/pywikipedia/wikipedia.py
Modified: trunk/pywikipedia/diskcache.py =================================================================== --- trunk/pywikipedia/diskcache.py 2008-07-04 18:30:18 UTC (rev 5670) +++ trunk/pywikipedia/diskcache.py 2008-07-05 10:48:13 UTC (rev 5671) @@ -59,7 +59,7 @@ self.cache_file.seek(0) self.cache = []
- def __del__(self): + def delete(self): self.cache_file.close() import os os.unlink(self.cache_path)
Modified: trunk/pywikipedia/wikipedia.py =================================================================== --- trunk/pywikipedia/wikipedia.py 2008-07-04 18:30:18 UTC (rev 5670) +++ trunk/pywikipedia/wikipedia.py 2008-07-05 10:48:13 UTC (rev 5671) @@ -6332,6 +6332,10 @@ when it has stopped doing so. After a bot has run stopme() it will not slow down other bots any more. """ + if config.use_diskcache: + for site in _sites.itervalues(): + if site._mediawiki_messages: + site._mediawiki_messages.delete() get_throttle.drop()
def _flush():