From 878ddbdf1c17a84fed4cc232349cb073aff1f3f4 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Thu, 31 Aug 2023 18:10:10 -0700 Subject: [PATCH] python-codecs: fix windows leak --- plugins/python-codecs/package-lock.json | 4 ++-- plugins/python-codecs/package.json | 2 +- plugins/python-codecs/src/main.py | 20 ++++++++++++-------- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/plugins/python-codecs/package-lock.json b/plugins/python-codecs/package-lock.json index 2c2940812..81c85b501 100644 --- a/plugins/python-codecs/package-lock.json +++ b/plugins/python-codecs/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/python-codecs", - "version": "0.1.82", + "version": "0.1.84", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@scrypted/python-codecs", - "version": "0.1.82", + "version": "0.1.84", "devDependencies": { "@scrypted/sdk": "file:../../sdk" } diff --git a/plugins/python-codecs/package.json b/plugins/python-codecs/package.json index f080fae4f..944b9ab86 100644 --- a/plugins/python-codecs/package.json +++ b/plugins/python-codecs/package.json @@ -1,6 +1,6 @@ { "name": "@scrypted/python-codecs", - "version": "0.1.82", + "version": "0.1.84", "description": "Python Codecs for Scrypted", "keywords": [ "scrypted", diff --git a/plugins/python-codecs/src/main.py b/plugins/python-codecs/src/main.py index 229d8410e..527de75f1 100644 --- a/plugins/python-codecs/src/main.py +++ b/plugins/python-codecs/src/main.py @@ -9,6 +9,7 @@ import vipsimage import pilimage import time import zygote +import os Gst = None try: @@ -101,6 +102,12 @@ class GstreamerGenerator( ) +def restart(): + asyncio.ensure_future( + scrypted_sdk.deviceManager.requestRestart(), loop=asyncio.get_event_loop() + ) + + class PythonCodecs(scrypted_sdk.ScryptedDeviceBase, scrypted_sdk.DeviceProvider): def __init__(self, nativeId=None): super().__init__(nativeId) @@ -108,6 +115,10 @@ class PythonCodecs(scrypted_sdk.ScryptedDeviceBase, scrypted_sdk.DeviceProvider) self.zygote = None asyncio.ensure_future(self.initialize()) + # 8/30/2023 clear out process leaks on various systems that i can't track down. + # 8/31/2023 this might be fixed. + asyncio.get_event_loop().call_later(24 * 60 * 60, restart) + async def initialize(self): manifest: scrypted_sdk.DeviceManifest = { "devices": [], @@ -185,14 +196,7 @@ def create_scrypted_plugin(): def multiprocess_exit(): - import sys - - if sys.platform == "win32": - sys.exit() - else: - import os - - os._exit(os.EX_OK) + os._exit(0) class CodecFork: