summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalGenerator.cxx
diff options
context:
space:
mode:
authorRuslan Baratov <ruslan_baratov@yahoo.com>2014-11-25 22:49:25 (GMT)
committerBrad King <brad.king@kitware.com>2014-12-03 14:47:44 (GMT)
commite6db4c5a4ede8039ed525e3facebd7e0eb7ec1b7 (patch)
treef5e6a3dce7b89725f9fa4e5fcafd040114a85466 /Source/cmLocalGenerator.cxx
parent05d6531c7a8ecfad513a0e76b44b273b70fa919b (diff)
downloadCMake-e6db4c5a4ede8039ed525e3facebd7e0eb7ec1b7.zip
CMake-e6db4c5a4ede8039ed525e3facebd7e0eb7ec1b7.tar.gz
CMake-e6db4c5a4ede8039ed525e3facebd7e0eb7ec1b7.tar.bz2
file: Add LOCK subcommand to do file and directory locking
Provide options to fail without blocking or to block up to a timeout. Provide options to specify the scope containing the lock so it can be released automatically at the end of a function, file, or process. Extend the RunCMake.file test with cases covering the file(LOCK) command usage and error cases.
Diffstat (limited to 'Source/cmLocalGenerator.cxx')
-rw-r--r--Source/cmLocalGenerator.cxx6
1 files changed, 6 insertions, 0 deletions
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index 3fb1e1e..2de6c93 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -79,9 +79,15 @@ public:
this->GG = lg->GetGlobalGenerator();
this->LG = this->GG->GetCurrentLocalGenerator();
this->GG->SetCurrentLocalGenerator(lg);
+#if defined(CMAKE_BUILD_WITH_CMAKE)
+ this->GG->GetFileLockPool().PushFileScope();
+#endif
}
~cmLocalGeneratorCurrent()
{
+#if defined(CMAKE_BUILD_WITH_CMAKE)
+ this->GG->GetFileLockPool().PopFileScope();
+#endif
this->GG->SetCurrentLocalGenerator(this->LG);
}
};