Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager manages concurrent executions with enhanced features
func NewManager ¶
NewManager creates a new concurrency manager with validation
Usage:
// Create a manager that allows up to 10 concurrent operations
cm, err := NewManager(10)
if err != nil {
log.Fatal(err)
}
// Example 1: Basic usage with context timeout
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
if err := cm.Acquire(ctx); err != nil {
// Handle acquisition failure (timeout/cancellation)
return err
}
defer cm.Release() // Always release when done
// Example 2: Non-blocking attempt
if acquired := cm.TryAcquire(); acquired {
defer cm.Release()
// Do work...
} else {
// Handle busy case
}
// Example 3: Check metrics
metrics := cm.GetMetrics()
log.Printf("Current usage: %d/%d", metrics["current"], 10)
func (*Manager) GetMetrics ¶
GetMetrics returns current metrics
func (*Manager) TryAcquire ¶
TryAcquire attempts to acquire without blocking
Click to show internal directories.
Click to hide internal directories.