diff options
| author | bwarsaw | 2002-03-01 20:10:04 +0000 |
|---|---|---|
| committer | bwarsaw | 2002-03-01 20:10:04 +0000 |
| commit | 48d1f07043dec43a2fe1286c214a210c84b5157c (patch) | |
| tree | ebbbf47c0524c885791f49e26177d6b70980bbc8 /Mailman/Queue/ArchRunner.py | |
| parent | 4cd8c053220fa86668f28ebad2f75c10d9600f86 (diff) | |
| download | mailman-48d1f07043dec43a2fe1286c214a210c84b5157c.tar.gz mailman-48d1f07043dec43a2fe1286c214a210c84b5157c.tar.zst mailman-48d1f07043dec43a2fe1286c214a210c84b5157c.zip | |
__del__(): Remove this because it prevents the garbage collector from
being able to free cycles containing MailList objects (see the gc
module's documentation under the gc.garbage attribute for details).
AFAICT, this has no effect on operations currently, because I believe
we are pretty rigorous about unlocking MailList objects explicitly.
This has a dramatic effect on memory leakage too, since there were/are
cycles containing these fairly heavyweight objects that previously,
the garbage collector couldn't free.
We'll need to watch carefully for stale locks being left around,
because I believe the MailList objects were at least being finalized
during process shutdown, but maybe not, and it's a very dubious
practice to be depending on anyway.
Note: this doesn't completely eliminate the unbounded memory growth,
although this in conjunction with shutting off the archiver appears to
improve the steady state of memory usage (and perhaps not
coincidentally greatly improves performance).
Diffstat (limited to 'Mailman/Queue/ArchRunner.py')
0 files changed, 0 insertions, 0 deletions
