aboutsummaryrefslogtreecommitdiff
path: root/lib/std
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2021-01-24 12:22:51 -0700
committerAndrew Kelley <andrew@ziglang.org>2021-01-24 12:22:51 -0700
commitb56e916fa1d3508a01a6fc0b62f3f64dd3843b85 (patch)
treec9892387883f0d563ed377692bacf23d10a0d1bc /lib/std
parent15278b7f4b74e659fd968571cb9b96929da3d82c (diff)
parent2b321c25ce07953799300febf248ea7a7268bbd2 (diff)
downloadzig-b56e916fa1d3508a01a6fc0b62f3f64dd3843b85.tar.gz
zig-b56e916fa1d3508a01a6fc0b62f3f64dd3843b85.zip
Merge branch 'FireFox317-deadlock-windows-fix'
Merges #7861
Diffstat (limited to 'lib/std')
-rw-r--r--lib/std/Progress.zig4
-rw-r--r--lib/std/os/windows/kernel32.zig2
2 files changed, 4 insertions, 2 deletions
diff --git a/lib/std/Progress.zig b/lib/std/Progress.zig
index b75ad106a4..131aff2d2b 100644
--- a/lib/std/Progress.zig
+++ b/lib/std/Progress.zig
@@ -103,8 +103,10 @@ pub const Node = struct {
}
parent.completeOne();
} else {
+ const held = self.context.update_lock.acquire();
+ defer held.release();
self.context.done = true;
- self.context.refresh();
+ self.context.refreshWithHeldLock();
}
}
diff --git a/lib/std/os/windows/kernel32.zig b/lib/std/os/windows/kernel32.zig
index ec4a75afa9..734059a08a 100644
--- a/lib/std/os/windows/kernel32.zig
+++ b/lib/std/os/windows/kernel32.zig
@@ -299,6 +299,6 @@ pub extern "kernel32" fn SleepConditionVariableSRW(
f: ULONG,
) callconv(WINAPI) BOOL;
-pub extern "kernel32" fn TryAcquireSRWLockExclusive(s: *SRWLOCK) callconv(WINAPI) BOOL;
+pub extern "kernel32" fn TryAcquireSRWLockExclusive(s: *SRWLOCK) callconv(WINAPI) BOOLEAN;
pub extern "kernel32" fn AcquireSRWLockExclusive(s: *SRWLOCK) callconv(WINAPI) void;
pub extern "kernel32" fn ReleaseSRWLockExclusive(s: *SRWLOCK) callconv(WINAPI) void;