go4.orggo4.org/syncutil/syncdebug Index | Files

package syncdebug

import "go4.org/syncutil/syncdebug"

Package syncdebug contains facilities for debugging synchronization problems.

Index

Functions

func GoroutineID

func GoroutineID() int64

GoroutineID returns the current goroutine's ID. Use of this function is almost always a terrible idea. It is also very slow. GoroutineID is intended only for debugging. In particular, it is used by syncutil.

Types

type RWMutexTracker

type RWMutexTracker struct {
	// contains filtered or unexported fields
}

RWMutexTracker is a sync.RWMutex that tracks who owns the current exclusive lock. It's used for debugging deadlocks.

func (*RWMutexTracker) Holder

func (m *RWMutexTracker) Holder() string

Holder returns the stack trace of the current exclusive lock holder's stack when it acquired the lock (with Lock). It returns the empty string if the lock is not currently held.

func (*RWMutexTracker) Lock

func (m *RWMutexTracker) Lock()

func (*RWMutexTracker) RLock

func (m *RWMutexTracker) RLock()

func (*RWMutexTracker) RUnlock

func (m *RWMutexTracker) RUnlock()

func (*RWMutexTracker) Unlock

func (m *RWMutexTracker) Unlock()

Source Files

syncdebug.go

Version
v0.0.0-20230225012048-214862532bf5 (latest)
Published
Feb 25, 2023
Platform
linux/amd64
Imports
8 packages
Last checked
1 month ago

Tools for package owners.