mirror of
https://github.com/akvorado/akvorado.git
synced 2025-12-12 06:24:10 +01:00
By downgrading the lock, we ensure readers get some time to work. Otherwise, writers may take the lock back. The downgrade code was stolen from https://github.com/google/gvisor/tree/master/pkg/sync.
18 lines
457 B
Go
18 lines
457 B
Go
// SPDX-FileCopyrightText: 2009 The Go Authors
|
|
// SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
package sync
|
|
|
|
import (
|
|
_ "unsafe" // use of go:linkname
|
|
)
|
|
|
|
//go:linkname semacquire sync.runtime_Semacquire
|
|
func semacquire(addr *uint32)
|
|
|
|
//go:linkname semacquireMutex sync.runtime_SemacquireMutex
|
|
func semacquireMutex(s *uint32, lifo bool, skipframes int)
|
|
|
|
//go:linkname semrelease sync.runtime_Semrelease
|
|
func semrelease(addr *uint32, handoff bool, skipframes int)
|