Pretty much every object in alchimia.engine manages some state:
TwistedEngine has a worker for connect & execute
TwistedConnection has a worker where all its SQL is executed
TwistedTransaction holds transaction state - this one we might not need to deal with since it's bound to the connection
TwistedResultProxy holds a result proxy.
TwistedEngine and TwistedConnection are particularly problematic because the worker thread created behind the scenes is its own strong-reference root and will never be cleaned up during the lifetime of the process if these objects do not shut them down.
As seen in #30 , leaking these types of resources can give one the impression that the whole system is just freezing for no reason.
Pretty much every object in
alchimia.engine
manages some state:TwistedEngine and TwistedConnection are particularly problematic because the worker thread created behind the scenes is its own strong-reference root and will never be cleaned up during the lifetime of the process if these objects do not shut them down.
As seen in #30 , leaking these types of resources can give one the impression that the whole system is just freezing for no reason.