From dfd55c3957b0faaeac56a1769cd2f477ee2ac57c Mon Sep 17 00:00:00 2001 From: shortcutme Date: Tue, 17 Dec 2019 14:50:38 +0100 Subject: [PATCH] Fix memory leak when using sleep in threads --- src/util/ThreadPool.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/util/ThreadPool.py b/src/util/ThreadPool.py index fb958c2a..7ffeb3b2 100644 --- a/src/util/ThreadPool.py +++ b/src/util/ThreadPool.py @@ -154,6 +154,19 @@ class MainLoopCaller(): return res else: raise res + + +def patchSleep(): # Fix memory leak by using real sleep in threads + real_sleep = gevent.monkey.get_original("time", "sleep") + + def patched_sleep(seconds): + if isMainThread(): + gevent.sleep(seconds) + else: + real_sleep(seconds) + time.sleep = patched_sleep + + main_loop = MainLoopCaller() main_loop.start() patchSleep()