| Index: tools/clang/rewrite_to_chrome_style/RewriteToChromeStyle.cpp | 
| diff --git a/tools/clang/rewrite_to_chrome_style/RewriteToChromeStyle.cpp b/tools/clang/rewrite_to_chrome_style/RewriteToChromeStyle.cpp | 
| index 98b4c9453d376aa24450476a1991068f6e7e1443..071ec2a0c37b974351db9fb85b37d99be001f900 100644 | 
| --- a/tools/clang/rewrite_to_chrome_style/RewriteToChromeStyle.cpp | 
| +++ b/tools/clang/rewrite_to_chrome_style/RewriteToChromeStyle.cpp | 
| @@ -20,6 +20,13 @@ | 
| #include <unordered_map> | 
| #include <unordered_set> | 
|  | 
| +#if defined(_WIN32) | 
| +#include <windows.h> | 
| +#else | 
| +#include <sys/file.h> | 
| +#include <unistd.h> | 
| +#endif | 
| + | 
| #include "clang/AST/ASTContext.h" | 
| #include "clang/ASTMatchers/ASTMatchFinder.h" | 
| #include "clang/ASTMatchers/ASTMatchers.h" | 
| @@ -511,6 +518,17 @@ int main(int argc, const char* argv[]) { | 
| if (result != 0) | 
| return result; | 
|  | 
| +#if defined(_WIN32) | 
| +  HFILE lockfd = CreateFile("rewrite-sym.lock", GENERIC_READ, FILE_SHARE_READ, | 
| +                            NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); | 
| +  OVERLAPPED overlapped = {}; | 
| +  LockFileEx(lockfd, LOCKFILE_EXCLUSIVE_LOCK, 0, 1, 0, &overlapped); | 
| +#else | 
| +  int lockfd = open("rewrite-sym.lock", O_RDWR | O_CREAT, 0666); | 
| +  while (flock(lockfd, LOCK_EX)) {  // :D | 
| +  } | 
| +#endif | 
| + | 
| std::ofstream replacement_db_file("rewrite-sym.txt", | 
| std::ios_base::out | std::ios_base::app); | 
| for (const auto& p : field_decl_rewriter.replacement_names()) | 
| @@ -523,6 +541,14 @@ int main(int argc, const char* argv[]) { | 
| replacement_db_file << "fun:" << p.first << ":" << p.second << "\n"; | 
| replacement_db_file.close(); | 
|  | 
| +#if defined(_WIN32) | 
| +  UnlockFileEx(lockfd, 0, 1, 0, &overlapped); | 
| +  CloseHandle(lockfd); | 
| +#else | 
| +  flock(lockfd, LOCK_UN); | 
| +  close(lockfd); | 
| +#endif | 
| + | 
| // Serialization format is documented in tools/clang/scripts/run_tool.py | 
| llvm::outs() << "==== BEGIN EDITS ====\n"; | 
| for (const auto& r : replacements) { | 
|  |