klippy: Call gc.collect() on a "restart" request

Explicitly run the python garbage collector on a restart.  This cleans
up memory from the previous session.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor 2020-09-16 21:42:24 -04:00
parent 7d83aed410
commit 73cd8c241c
1 changed files with 4 additions and 2 deletions

View File

@ -1,10 +1,10 @@
#!/usr/bin/env python2
# Main code for host side printer firmware
#
# Copyright (C) 2016-2018 Kevin O'Connor <kevin@koconnor.net>
# Copyright (C) 2016-2020 Kevin O'Connor <kevin@koconnor.net>
#
# This file may be distributed under the terms of the GNU GPLv3 license.
import sys, os, optparse, logging, time, threading, collections, importlib
import sys, os, gc, optparse, logging, time, threading, collections, importlib
import util, reactor, queuelogger, msgproto, homing
import gcode, configfile, pins, mcu, toolhead, webhooks
@ -312,6 +312,7 @@ def main():
if bglogger is not None:
bglogger.clear_rollover_info()
bglogger.set_rollover_info('versions', versions)
gc.collect()
main_reactor = reactor.Reactor()
printer = Printer(main_reactor, bglogger, start_args)
res = printer.run()
@ -319,6 +320,7 @@ def main():
break
time.sleep(1.)
main_reactor.finalize()
main_reactor = printer = None
logging.info("Restarting printer")
start_args['start_reason'] = res