update comments

This commit is contained in:
georgehao 2025-02-04 17:35:21 +08:00
parent f6360614a1
commit 4e8c1e9ac2
No known key found for this signature in database

View file

@ -17,7 +17,8 @@
// Package syncx contains exotic synchronization primitives. // Package syncx contains exotic synchronization primitives.
package syncx package syncx
// ClosableMutex is a mutex that can be closed. Once closed, it cannot be locked again. // ClosableMutex is a mutex that can be closed.
// Once closed, it cannot be locked again.
type ClosableMutex struct { type ClosableMutex struct {
ch chan struct{} ch chan struct{}
} }
@ -29,7 +30,8 @@ func NewClosableMutex() *ClosableMutex {
return &ClosableMutex{ch: ch} return &ClosableMutex{ch: ch}
} }
// TryLock attempts to acquire the lock. Returns true if successful, false if the lock is closed or unavailable. // TryLock attempts to lock cm.
// If the mutex is closed, TryLock returns false.
func (cm *ClosableMutex) TryLock() bool { func (cm *ClosableMutex) TryLock() bool {
select { select {
case <-cm.ch: case <-cm.ch:
@ -39,7 +41,8 @@ func (cm *ClosableMutex) TryLock() bool {
} }
} }
// MustLock acquires the lock. Panics if the lock is already closed. // MustLock locks cm.
// If the mutex is closed, MustLock panics.
func (cm *ClosableMutex) MustLock() { func (cm *ClosableMutex) MustLock() {
select { select {
case <-cm.ch: case <-cm.ch:
@ -49,7 +52,7 @@ func (cm *ClosableMutex) MustLock() {
} }
} }
// Unlock releases the lock. Panics if the lock is already closed or if called without holding the lock. // Unlock unlocks cm.
func (cm *ClosableMutex) Unlock() { func (cm *ClosableMutex) Unlock() {
select { select {
case cm.ch <- struct{}{}: case cm.ch <- struct{}{}:
@ -58,7 +61,7 @@ func (cm *ClosableMutex) Unlock() {
} }
} }
// Close closes the mutex, preventing further lock operations. Panics if called on an already-closed mutex. // Close locks the mutex, then closes it.
func (cm *ClosableMutex) Close() { func (cm *ClosableMutex) Close() {
select { select {
case <-cm.ch: case <-cm.ch: