Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1235)

Unified Diff: runtime/bin/file_win.cc

Issue 2050413002: Adds blocking file locks. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Update docs and CHANGELOG Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: runtime/bin/file_win.cc
diff --git a/runtime/bin/file_win.cc b/runtime/bin/file_win.cc
index db3aef81d2237192dd39c8795b1fdc9ba29ece35..8d45a177dec65a4935ba03d95d451d29f2cd6868 100644
--- a/runtime/bin/file_win.cc
+++ b/runtime/bin/file_win.cc
@@ -138,9 +138,15 @@ bool File::Lock(File::LockType lock, int64_t start, int64_t end) {
rc = UnlockFileEx(handle, 0, length_low, length_high, &overlapped);
break;
case File::kLockShared:
- case File::kLockExclusive: {
- DWORD flags = LOCKFILE_FAIL_IMMEDIATELY;
- if (lock == File::kLockExclusive) {
+ case File::kLockExclusive:
+ case File::kLockBlockingShared:
+ case File::kLockBlockingExclusive: {
+ DWORD flags = 0;
+ if ((lock == File::kLockShared) || (lock == File::kLockExclusive)) {
+ flags |= LOCKFILE_FAIL_IMMEDIATELY;
+ }
+ if ((lock == File::kLockExclusive) ||
+ (lock == File::kLockBlockingExclusive)) {
flags |= LOCKFILE_EXCLUSIVE_LOCK;
}
rc = LockFileEx(handle, flags, 0,
« no previous file with comments | « runtime/bin/file_macos.cc ('k') | sdk/lib/io/file.dart » ('j') | sdk/lib/io/file.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698