mirror of https://github.com/python/cpython
GH-118943: Handle races when moving jit_stencils.h (GH-120690)
Co-authored-by: Kirill Podoprigora <kirill.bast9@mail.ru>
This commit is contained in:
parent
5bd72912a1
commit
44659d3927
|
@ -0,0 +1,3 @@
|
||||||
|
Fix a possible race condition affecting parallel builds configured with
|
||||||
|
``--enable-experimental-jit``, in which :exc:`FileNotFoundError` could be caused by
|
||||||
|
another process already moving ``jit_stencils.h.new`` to ``jit_stencils.h``.
|
|
@ -221,7 +221,12 @@ class _Target(typing.Generic[_S, _R]):
|
||||||
file.write("\n")
|
file.write("\n")
|
||||||
for line in _writer.dump(stencil_groups):
|
for line in _writer.dump(stencil_groups):
|
||||||
file.write(f"{line}\n")
|
file.write(f"{line}\n")
|
||||||
|
try:
|
||||||
jit_stencils_new.replace(jit_stencils)
|
jit_stencils_new.replace(jit_stencils)
|
||||||
|
except FileNotFoundError:
|
||||||
|
# another process probably already moved the file
|
||||||
|
if not jit_stencils.is_file():
|
||||||
|
raise
|
||||||
finally:
|
finally:
|
||||||
jit_stencils_new.unlink(missing_ok=True)
|
jit_stencils_new.unlink(missing_ok=True)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue