mirror of
https://github.com/python/cpython.git
synced 2026-01-04 14:32:21 +00:00
GH-118943: Fix a race condition when generating jit_stencils.h (GH-118957)
This commit is contained in:
parent
ab73bcdf73
commit
4702b7b5bd
2 changed files with 15 additions and 7 deletions
|
|
@ -0,0 +1,3 @@
|
|||
Fix a possible race condition affecting parallel builds configured with
|
||||
``--enable-experimental-jit``, in which compilation errors could be caused
|
||||
by an incompletely-generated header file.
|
||||
|
|
@ -212,13 +212,18 @@ def build(
|
|||
):
|
||||
return
|
||||
stencil_groups = asyncio.run(self._build_stencils())
|
||||
with jit_stencils.open("w") as file:
|
||||
file.write(digest)
|
||||
if comment:
|
||||
file.write(f"// {comment}\n\n")
|
||||
file.write("")
|
||||
for line in _writer.dump(stencil_groups):
|
||||
file.write(f"{line}\n")
|
||||
jit_stencils_new = out / "jit_stencils.h.new"
|
||||
try:
|
||||
with jit_stencils_new.open("w") as file:
|
||||
file.write(digest)
|
||||
if comment:
|
||||
file.write(f"// {comment}\n")
|
||||
file.write("\n")
|
||||
for line in _writer.dump(stencil_groups):
|
||||
file.write(f"{line}\n")
|
||||
jit_stencils_new.replace(jit_stencils)
|
||||
finally:
|
||||
jit_stencils_new.unlink(missing_ok=True)
|
||||
|
||||
|
||||
class _COFF(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue