Two PrecompiledPreambles, used in parallel on separate threads,
could be writing preamble to the same temporary file.
Details
Diff Detail
- Build Status
Buildable 9167 Build 9167: arc lint + arc unit
Event Timeline
lib/Frontend/PrecompiledPreamble.cpp | ||
---|---|---|
470–471 | 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 | 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. |
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.
I don't understand that yet - why does keeping the file open around the EC check change any of the behavior?
Generally, both create the file, right? So only the first one should get no error?