aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/interpreter.py1
-rw-r--r--mesonbuild/interpreterbase.py1
-rw-r--r--mesonbuild/mesonlib.py5
3 files changed, 7 insertions, 0 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index 13c3119..d776b05 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -1308,6 +1308,7 @@ class Interpreter(InterpreterBase):
def __init__(self, build, backend, subproject='', subdir='', subproject_dir='subprojects',
default_project_options=[]):
super().__init__(build.environment.get_source_dir(), subdir)
+ self.an_unpicklable_object = mesonlib.an_unpicklable_object
self.build = build
self.environment = build.environment
self.coredata = self.environment.get_coredata()
diff --git a/mesonbuild/interpreterbase.py b/mesonbuild/interpreterbase.py
index d44f71b..7e9fa26 100644
--- a/mesonbuild/interpreterbase.py
+++ b/mesonbuild/interpreterbase.py
@@ -61,6 +61,7 @@ class permittedKwargs:
self.permitted = permitted
def __call__(self, f):
+ @wraps(f)
def wrapped(s, node, args, kwargs):
for k in kwargs:
if k not in self.permitted:
diff --git a/mesonbuild/mesonlib.py b/mesonbuild/mesonlib.py
index 415bc50..bf6ba98 100644
--- a/mesonbuild/mesonlib.py
+++ b/mesonbuild/mesonlib.py
@@ -21,6 +21,11 @@ import collections
from glob import glob
+# Put this in objects that should not get dumped to pickle files
+# by accident.
+import threading
+an_unpicklable_object = threading.Lock()
+
class MesonException(Exception):
'''Exceptions thrown by Meson'''