From: Amos Jeffries Date: Mon, 21 Apr 2014 05:13:31 +0000 (-0700) Subject: Trigger finishShutdown runners event before pooled memory is released X-Git-Tag: SQUID_3_5_0_1~282 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=553d498cfe1eb1eb3a03280a0e8bb9b566171887;p=thirdparty%2Fsquid.git Trigger finishShutdown runners event before pooled memory is released This allows runner destructors to operate their cleanup even if the component memory they are cleaning up is pooled. --- diff --git a/src/base/RunnersRegistry.h b/src/base/RunnersRegistry.h index d0e369c208..8a401651cf 100644 --- a/src/base/RunnersRegistry.h +++ b/src/base/RunnersRegistry.h @@ -60,7 +60,7 @@ public: /// Meant for cleanup and state saving that may require other modules. virtual void startShutdown() {} - /// Called after stopping the main loop. + /// Called after stopping the main loop and before releasing memory. /// Meant for quick/basic cleanup that does not require any other modules. virtual ~RegisteredRunner() {} /// exists to simplify caller interface; override the destructor instead diff --git a/src/main.cc b/src/main.cc index 59d24b8a62..09d0616b6c 100644 --- a/src/main.cc +++ b/src/main.cc @@ -1907,10 +1907,10 @@ SquidShutdown() comm_exit(); - memClean(); - RunRegisteredHere(RegisteredRunner::finishShutdown); + memClean(); + if (IamPrimaryProcess()) { if (Config.pidFilename && strcmp(Config.pidFilename, "none") != 0) { enter_suid();