diff --git a/volatility/framework/constants.py b/volatility/framework/constants.py index e841ea5c5..8dd7eedb4 100644 --- a/volatility/framework/constants.py +++ b/volatility/framework/constants.py @@ -9,6 +9,7 @@ import sys PLUGINS_PATH = [os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "plugins"))] BANG = "!" PACKAGE_VERSION = "3.0.0_alpha1" +DISABLE_MULTITHREADED_SCANNING = False LOGLEVEL_V = 9 LOGLEVEL_VV = 8 diff --git a/volatility/framework/interfaces/layers.py b/volatility/framework/interfaces/layers.py index 8b94793b0..9d0f528a3 100644 --- a/volatility/framework/interfaces/layers.py +++ b/volatility/framework/interfaces/layers.py @@ -8,7 +8,7 @@ import math import multiprocessing from abc import ABCMeta, abstractmethod, abstractproperty -from volatility.framework import exceptions, validity +from volatility.framework import constants, exceptions, validity from volatility.framework.interfaces import configuration, context vollog = logging.getLogger(__name__) @@ -186,7 +186,7 @@ class DataLayerInterface(configuration.ConfigurableInterface, validity.ValidityR scan_iterator = functools.partial(self._scan_iterator, scanner, min_address, max_address) scan_chunk = functools.partial(self._scan_chunk, scanner, min_address, max_address, progress) scan_metric = functools.partial(self._scan_metric, scanner, min_address, max_address) - if scanner.thread_safe: + if scanner.thread_safe and constants.DISABLE_MULTITHREADED_SCANNING: with multiprocessing.Pool() as pool: result = pool.map_async(scan_chunk, scan_iterator()) while not result.ready():