mirror of
https://github.com/prometheus-community/windows_exporter.git
synced 2026-10-17 01:59:04 +02:00
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
21 lines
656 B
PowerShell
21 lines
656 B
PowerShell
# Background CI steps attach virtual disks at the same time, which makes
|
|
# Mount-VHD fail with 0x800703E3. Serialize attaching and formatting them.
|
|
function Invoke-WithVhdLock([scriptblock]$ScriptBlock) {
|
|
$mutex = [System.Threading.Mutex]::new($false, "Global\windows-exporter-ci-vhd")
|
|
try {
|
|
try {
|
|
[void]$mutex.WaitOne()
|
|
} catch [System.Threading.AbandonedMutexException] {
|
|
# The previous owner exited without releasing; the lock is ours now.
|
|
}
|
|
|
|
try {
|
|
& $ScriptBlock
|
|
} finally {
|
|
$mutex.ReleaseMutex()
|
|
}
|
|
} finally {
|
|
$mutex.Dispose()
|
|
}
|
|
}
|