Two PrecompiledPreambles, used in parallel on separate threads,
could be writing preamble to the same temporary file.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
lib/Frontend/PrecompiledPreamble.cpp | ||
---|---|---|
470–471 ↗ | (On Diff #110418) | I don't understand that yet - why does keeping the file open around the EC check change any of the behavior? |
lib/Frontend/PrecompiledPreamble.cpp | ||
---|---|---|
470–471 ↗ | (On Diff #110418) | createTemporaryFile without fd does not create a file, only checks if the it exists, hence the race condition. Do you think a better solution would be to make it create an empty file and close it right away, similarly to what this function does now? createTemporaryFile with fd does not have that problem, it actually tries to create a file until it succeeds. |
Comment Actions
LG, as discussed in person, it's probably a good idea to try to get rid of the non-file-creating version, if possible, or at least fix the comments on the functions to make this behavior clear.