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")
|
||||
for line in _writer.dump(stencil_groups):
|
||||
file.write(f"{line}\n")
|
||||
jit_stencils_new.replace(jit_stencils)
|
||||
try:
|
||||
jit_stencils_new.replace(jit_stencils)
|
||||
except FileNotFoundError:
|
||||
# another process probably already moved the file
|
||||
if not jit_stencils.is_file():
|
||||
raise
|
||||
finally:
|
||||
jit_stencils_new.unlink(missing_ok=True)
|
||||
|
||||
|
|
Loading…
Reference in New Issue