MCPcopy Create free account
hub / github.com/devld/go-drive / Dispose

Method Dispose

script/pool.go:139–160  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

137}
138
139func (p *VMPool) Dispose() error {
140 p.stopOnce.Do(func() { close(p.stop) })
141 p.cleaner.Wait()
142
143 p.mu.Lock()
144 if p.closed {
145 p.mu.Unlock()
146 return nil
147 }
148 p.closed = true
149 idle := p.idle
150 p.idle = nil
151 p.total -= len(idle)
152 p.signalLocked()
153 p.mu.Unlock()
154
155 var disposeErr error
156 for _, item := range idle {
157 disposeErr = errors.Join(disposeErr, item.vm.Dispose())
158 }
159 return disposeErr
160}
161
162func (p *VMPool) runCleaner(period time.Duration) {
163 defer p.cleaner.Done()

Calls 5

signalLockedMethod · 0.95
closeFunction · 0.85
LockMethod · 0.65
UnlockMethod · 0.65
DisposeMethod · 0.65