From 095c818a36db1373adfb89f727e87a027c11854d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Wed, 21 Mar 2018 17:18:16 +0100 Subject: [PATCH] Move @with_monitor_paused decoartor to directory_monitor.py --- lib/tfw/components/directory_monitor.py | 11 +++++++++++ .../components/process_managing_event_handler.py | 13 ++----------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/lib/tfw/components/directory_monitor.py b/lib/tfw/components/directory_monitor.py index 64d5c23..2ccffeb 100644 --- a/lib/tfw/components/directory_monitor.py +++ b/lib/tfw/components/directory_monitor.py @@ -1,5 +1,6 @@ from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler as FileSystemWatchdogEventHandler +from functools import wraps from tfw.networking.event_handlers.server_connector import ServerUplinkConnector from tfw.components.decorators import RateLimiter @@ -65,3 +66,13 @@ class WebideReloadWatchdogEventHandler(FileSystemWatchdogEventHandler): log.debug(event) key = 'webide' self.uplink.send(key, {'data': {'command': 'reload'}}) + + +def with_monitor_paused(fun): + @wraps(fun) + def wrapper(self, *args, **kwargs): + if self.monitor: + with self.monitor.pauser: + return fun(self, *args, **kwargs) + return fun(self, *args, **kwargs) + return wrapper diff --git a/lib/tfw/components/process_managing_event_handler.py b/lib/tfw/components/process_managing_event_handler.py index e18a8b7..7ceb623 100644 --- a/lib/tfw/components/process_managing_event_handler.py +++ b/lib/tfw/components/process_managing_event_handler.py @@ -1,8 +1,8 @@ -from functools import wraps from xmlrpc.client import Fault as SupervisorFault from tfw.event_handler_base import TriggerlessEventHandler from tfw.components.mixins import SupervisorMixin +from tfw.components.directory_monitor import with_monitor_paused from tfw.config.logs import logging log = logging.getLogger(__name__) @@ -25,16 +25,7 @@ class ProcessManagingEventHandler(TriggerlessEventHandler): self.monitor = dirmonitor self.processmanager = ProcessManager() - def _with_monitor_paused(fun): - @wraps(fun) - def wrapper(self, *args, **kwargs): - if self.monitor: - with self.monitor.pauser: - return fun(self, *args, **kwargs) - return fun(self, *args, **kwargs) - return wrapper - - @_with_monitor_paused + @with_monitor_paused def handle_event(self, key, message): try: data = message['data']