mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 06:13:07 +00:00
fix windows bug in Progress.zig
This bug caused the compiler to deadlock when multiple c objects were build in parallel. Thanks @kprotty for finding this bug!
This commit is contained in:
parent
15278b7f4b
commit
4f7d76f19c
@ -103,7 +103,11 @@ pub const Node = struct {
|
|||||||
}
|
}
|
||||||
parent.completeOne();
|
parent.completeOne();
|
||||||
} else {
|
} else {
|
||||||
self.context.done = true;
|
{
|
||||||
|
const held = self.context.update_lock.acquire();
|
||||||
|
defer held.release();
|
||||||
|
self.context.done = true;
|
||||||
|
}
|
||||||
self.context.refresh();
|
self.context.refresh();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -299,6 +299,6 @@ pub extern "kernel32" fn SleepConditionVariableSRW(
|
|||||||
f: ULONG,
|
f: ULONG,
|
||||||
) callconv(WINAPI) BOOL;
|
) 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 AcquireSRWLockExclusive(s: *SRWLOCK) callconv(WINAPI) void;
|
||||||
pub extern "kernel32" fn ReleaseSRWLockExclusive(s: *SRWLOCK) callconv(WINAPI) void;
|
pub extern "kernel32" fn ReleaseSRWLockExclusive(s: *SRWLOCK) callconv(WINAPI) void;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user