summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortza <marios8543@gmail.com>2022-04-13 23:50:26 +0300
committertza <marios8543@gmail.com>2022-04-13 23:50:26 +0300
commit6694d5ab714cd27c88d51e2561a898718f2e8e69 (patch)
treeb8139d8aa4200e2c561edc7badb22bc4c0715f1a
parentc084abecfc039fd5bdfcb08d7b56c66ddb10839e (diff)
downloaddecky-loader-6694d5ab714cd27c88d51e2561a898718f2e8e69.tar.gz
decky-loader-6694d5ab714cd27c88d51e2561a898718f2e8e69.zip
fixed passive plugin reload bug and close event loop properly
-rw-r--r--plugin_loader/loader.py2
-rw-r--r--plugin_loader/plugin.py5
2 files changed, 4 insertions, 3 deletions
diff --git a/plugin_loader/loader.py b/plugin_loader/loader.py
index 74c99442..ae609301 100644
--- a/plugin_loader/loader.py
+++ b/plugin_loader/loader.py
@@ -31,8 +31,6 @@ class FileChangeHandler(FileSystemEventHandler):
rel_path = path.relpath(src_path, path.commonprefix([self.plugin_path, src_path]))
plugin_dir = path.split(rel_path)[0]
main_file_path = path.join(self.plugin_path, plugin_dir, "main.py")
- if not path.isfile(main_file_path):
- return
self.loader.import_plugin(main_file_path, plugin_dir, refresh=True)
def on_modified(self, event):
diff --git a/plugin_loader/plugin.py b/plugin_loader/plugin.py
index 04feeb27..033d36fc 100644
--- a/plugin_loader/plugin.py
+++ b/plugin_loader/plugin.py
@@ -45,7 +45,9 @@ class PluginWrapper:
while True:
data = loads((await reader.readline()).decode("utf-8"))
if "stop" in data:
- return get_event_loop().stop()
+ get_event_loop().stop()
+ get_event_loop().close()
+ return
d = {"res": None, "success": True}
try:
d["res"] = await getattr(self.Plugin, data["method"])(self.Plugin, **data["args"])
@@ -82,6 +84,7 @@ class PluginWrapper:
await self._open_socket_if_not_exists()
self.writer.write((dumps({"stop": True})+"\n").encode("utf-8"))
await self.writer.drain()
+ self.writer.close()
loop.create_task(_(self))
async def execute_method(self, method_name, kwargs):