$58 GRAYBYTE WORDPRESS FILE MANAGER $42

SERVER : vnpttt-amd7f72-h1.vietnix.vn #1 SMP Fri May 24 12:42:50 UTC 2024
SERVER IP : 103.200.23.149 | ADMIN IP 216.73.216.22
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/lib/golang/src/sync/

HOME
Current File : /lib/golang/src/sync//mutex.go
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// Package sync provides basic synchronization primitives such as mutual
// exclusion locks. Other than the [Once] and [WaitGroup] types, most are intended
// for use by low-level library routines. Higher-level synchronization is
// better done via channels and communication.
//
// Values containing the types defined in this package should not be copied.
package sync

import (
	isync "internal/sync"
)

// A Mutex is a mutual exclusion lock.
// The zero value for a Mutex is an unlocked mutex.
//
// A Mutex must not be copied after first use.
//
// In the terminology of [the Go memory model],
// the n'th call to [Mutex.Unlock] “synchronizes before” the m'th call to [Mutex.Lock]
// for any n < m.
// A successful call to [Mutex.TryLock] is equivalent to a call to Lock.
// A failed call to TryLock does not establish any “synchronizes before”
// relation at all.
//
// [the Go memory model]: https://go.dev/ref/mem
type Mutex struct {
	_ noCopy

	mu isync.Mutex
}

// A Locker represents an object that can be locked and unlocked.
type Locker interface {
	Lock()
	Unlock()
}

// Lock locks m.
// If the lock is already in use, the calling goroutine
// blocks until the mutex is available.
func (m *Mutex) Lock() {
	m.mu.Lock()
}

// TryLock tries to lock m and reports whether it succeeded.
//
// Note that while correct uses of TryLock do exist, they are rare,
// and use of TryLock is often a sign of a deeper problem
// in a particular use of mutexes.
func (m *Mutex) TryLock() bool {
	return m.mu.TryLock()
}

// Unlock unlocks m.
// It is a run-time error if m is not locked on entry to Unlock.
//
// A locked [Mutex] is not associated with a particular goroutine.
// It is allowed for one goroutine to lock a Mutex and then
// arrange for another goroutine to unlock it.
func (m *Mutex) Unlock() {
	m.mu.Unlock()
}

Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
16 Dec 2025 9.30 PM
root / root
0755
atomic
--
16 Dec 2025 9.30 PM
root / root
0755
cond.go
4.051 KB
4 Dec 2025 6.06 PM
root / root
0644
hashtriemap.go
4.574 KB
4 Dec 2025 6.06 PM
root / root
0644
map.go
15.639 KB
4 Dec 2025 6.06 PM
root / root
0644
mutex.go
1.948 KB
4 Dec 2025 6.06 PM
root / root
0644
once.go
2.459 KB
4 Dec 2025 6.06 PM
root / root
0644
oncefunc.go
2.288 KB
4 Dec 2025 6.06 PM
root / root
0644
pool.go
9.392 KB
4 Dec 2025 6.06 PM
root / root
0644
poolqueue.go
8.333 KB
4 Dec 2025 6.06 PM
root / root
0644
runtime.go
2.2 KB
4 Dec 2025 6.06 PM
root / root
0644
runtime2.go
0.454 KB
4 Dec 2025 6.06 PM
root / root
0644
runtime2_lockrank.go
0.533 KB
4 Dec 2025 6.06 PM
root / root
0644
rwmutex.go
7.42 KB
4 Dec 2025 6.06 PM
root / root
0644
waitgroup.go
7.407 KB
4 Dec 2025 6.06 PM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF