diff --git a/src/opnsense/service/check_reload_status.py b/src/opnsense/service/check_reload_status.py index a1b6decf8..653b37279 100755 --- a/src/opnsense/service/check_reload_status.py +++ b/src/opnsense/service/check_reload_status.py @@ -80,8 +80,9 @@ if len(sys.argv) > 1 and 'console' in sys.argv[1:]: # (https://code.google.com/p/jrfonseca/wiki/Gprof2Dot) print ("... to stop profiling") profile = cProfile.Profile() - profile.enable() + profile.enable(subcalls=True) try: + proc_handler.single_threaded = True proc_handler.run() except KeyboardInterrupt: pass diff --git a/src/opnsense/service/modules/processhandler.py b/src/opnsense/service/modules/processhandler.py index 100e66ec8..1da441bc2 100644 --- a/src/opnsense/service/modules/processhandler.py +++ b/src/opnsense/service/modules/processhandler.py @@ -66,7 +66,8 @@ class Handler(object): """ self.socket_filename = socket_filename self.config_path = config_path - self.simulation_mode =simulation_mode + self.simulation_mode = simulation_mode + self.single_threaded = False def run(self): """ Run process handler @@ -97,7 +98,13 @@ class Handler(object): client_address=client_address, action_handler=actHandler, simulation_mode=self.simulation_mode) - cmd_thread.start() + if self.single_threaded : + # run single threaded + cmd_thread.run() + else: + # rnu threaded + cmd_thread.start() + except KeyboardInterrupt: # exit on raise