New creates a new ConnManager instance
(cfg *config.Config, launcher SessionLauncher)
| 70 | |
| 71 | // New creates a new ConnManager instance |
| 72 | func New(cfg *config.Config, launcher SessionLauncher) *ConnManager { |
| 73 | return &ConnManager{ |
| 74 | cfg: cfg, |
| 75 | launcher: launcher, |
| 76 | launchState: &LaunchState{}, |
| 77 | |
| 78 | // Resource management |
| 79 | shutdownCh: make(chan struct{}), |
| 80 | maxSessions: 10, // Configurable limit |
| 81 | maxGoroutines: 50, // Prevent goroutine explosion |
| 82 | } |
| 83 | } |
| 84 | |
| 85 | // startGoroutine safely starts a goroutine with resource tracking |
| 86 | func (cm *ConnManager) startGoroutine(name string, fn func()) error { |