Expand test coverage and fix lifecycle contracts

Signed-off-by: Loren Eteval <loren.eteval@proton.me>
This commit is contained in:
Loren Eteval
2026-08-23 08:55:24 +08:00
parent 68ad1eefc1
commit 185bc784cb
13 changed files with 1408 additions and 17 deletions
+7 -1
View File
@@ -53,7 +53,10 @@ class AppMainProcess(ProcessContext.Process):
self.startupTime = str(datetime.datetime.now()).replace(':', '')
self.logFileName = f'{self.startupTime}.log'
self.fileWritten = multiprocessing.Manager().Value('b', False)
# One synchronized scalar is sufficient for the parent/child result.
# A multiprocessing.Manager would create a second child process whose
# lifecycle is unrelated to the exact application process we own.
self.fileWritten = ProcessContext.Value('b', False)
self.func = func
self.application = None
@@ -120,6 +123,9 @@ class AppMainProcess(ProcessContext.Process):
"""Handle r."""
logger.info(f'received signal {signal.Signals(signum).name}. Exit application')
if self.application is None:
sys.exit(ApplicationRunner.ExitCode.ExitSuccess.value)
self.application.exit()
def run(self):