Package syncdebug contains facilities for debugging synchronization problems.



    This section is empty.


    This section is empty.


    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

      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