syncdebug - ActiveState ActiveGo 1.8
...

Package syncdebug

import "go4.org/syncutil/syncdebug"
Overview
Index

Overview ▾

Package syncdebug contains facilities for debugging synchronization problems.

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.

type RWMutexTracker

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

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

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()