[llvm] Avoid a race condition in opt-viewer/optrecord (PR #131214)
Miro HronĨok via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 20 07:58:09 PDT 2025
================
@@ -64,17 +64,19 @@ class Remark(yaml.YAMLObject):
default_demangler = "c++filt -n"
demangler_proc = None
+ demangler_lock = Lock()
@classmethod
def set_demangler(cls, demangler):
cls.demangler_proc = subprocess.Popen(
demangler.split(), stdin=subprocess.PIPE, stdout=subprocess.PIPE
)
- cls.demangler_lock = Lock()
@classmethod
def demangle(cls, name):
with cls.demangler_lock:
+ if not cls.demangler_proc:
----------------
hroncok wrote:
I was even getting stuff like:
```
File "/builddir/build/BUILD/llvm-20.1.0-build/llvm-project-20.1.0.src/llvm/tools/opt-viewer/optrecord.py", line 160, in DemangledFunctionName
return self.demangle(self.Function)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "/builddir/build/BUILD/llvm-20.1.0-build/llvm-project-20.1.0.src/llvm/tools/opt-viewer/optrecord.py", line 85, in demangle
cls.demangler_proc.stdin.write((name + "\n").encode("utf-8"))
^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'stdin'
```
https://github.com/llvm/llvm-project/pull/131214
More information about the llvm-commits
mailing list