On 04/29/2013 04:37 PM, Raffi Enficiaud wrote:
> - process 1 is accessing generate.stamp for reading

Nothing ever reads the file.  Only its existence and modification
time matter.

> - process 2 is moving some "tmpfile" to generate.stamp -> race

The only race was for multiple processes simultaneously deciding
they need to create the (currently missing) file and then trying
to open the file for write at the same time.  That race is gone
because replacement is now atomic.

>   stampName += std::string(this->Makefile->GetProjectName())

CMake has a different meaning for "project" than .vcxproj so this
will still be the same name for all targets in a directory.  Each
.vcxproj file corresponds to what CMake calls a "target".

In order to use a different stamp file for each .vcxproj file then
the custom command produced by CreateVCProjBuildRule would not be
able to be re-used across multiple targets.  Instead each generator
would have to hand-code the custom command for its own .vcxproj file.

While possible it is a lot of work and this bug has already been
solved.

-Brad
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to