[cfe-dev] A few questions about ASTUnit's use of temporary files

Zachary Turner zturner at google.com
Thu Jun 19 17:02:37 PDT 2014


Question for the wider list: Can someone explain ASTUnit's use temporary
files?  Do we only ever open the files once and then that's it?  Or is
there a chance of passing the filename around to someone else, who will
then try to open it again?  Are these normal temporary files, in the sense
that they're expected to be always closed on process exit?

Question for Argyrios: I'm looking at a fairly old revision you submitted,
r159664.  The commit message here is as follows:

    [libclang] Protect against a race condition where a thread
    may be destroying an ASTUnit while cleanupOnDiskMapAtExit is
    getting called.

    rdar://11781241

Unfortunately I can't see this rdar link, so I don't have any more context.
 Can you elaborate on this race condition?  My guess is that we're running
multiple threads, someone calls ::exit(), and then the running threads race
against this atexit handler.

I'd like to fix this "properly", but it's difficult without have more
context about this race.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20140619/b33851f9/attachment.html>


More information about the cfe-dev mailing list