Description
This issue was originally created at: 2008-08-04 14:23:10.
This issue was reported by: jonasolsson
.
jonasolsson said at 2008-08-04 14:23:10
With Microsoft compiler when the compiler encounters a
#import <foo.tlb>
it will generate afoo.tlh
and afoo.tli
. If there are multiple compiles in parallel there is a race condition on who creates the*.tlh
and you tend to get permission denied errors.The C scanner currently finds the
#import
'ed files, but does not handle them any different than the#include
'd files. Assuming the scanner could be either enhanced to separate the two kinds of files, or simplified to only find the#include
'd files and then adding a new scanner for the#imported
'ed files. Then the list of#import
'ed files could be used to control what compiles can be run in parallell, by usingSideEffect()
or other means.
jonasolsson said at 2008-08-04 14:35:28
Add missing warning message.
jonasolsson said at 2008-08-04 14:37:59
Ignore the previous comment, it was intended for issue 2158.
gregnoel said at 2008-08-12 11:22:44
Bug party triage. SCons has
SideEffect()
to prevent multiple processes from opening the same file, but that would cause all compiles that refer to the same header to be run sequentially, which may prohibit any asynchronous compiles.In the meantime, the workaround is to pick one compile to build the file and use
Depends()
to make that compile the producers of the file and furtherDepends()
to make the other compiles the consumer of the file. That would make one compile synchronous, but the rest would be asynchronous.Ask on the users' mailing list if you need help making this work.
stevenknight said at 2009-11-10 18:00:19
stevenknight => issues@scons
Votes for this issue: 1.