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

Method Return

script/pool.go:120–137  ·  view source on GitHub ↗
(_ context.Context, vm *VM)

Source from the content-addressed store, hash-verified

118}
119
120func (p *VMPool) Return(_ context.Context, vm *VM) error {
121 if vm == nil {
122 return errors.New("cannot return a nil VM")
123 }
124 vm.DisposeDisposables()
125
126 p.mu.Lock()
127 if p.closed || len(p.idle) >= p.config.MaxIdle {
128 p.total--
129 p.signalLocked()
130 p.mu.Unlock()
131 return vm.Dispose()
132 }
133 p.idle = append(p.idle, idleVM{vm: vm, returnedAt: time.Now()})
134 p.signalLocked()
135 p.mu.Unlock()
136 return nil
137}
138
139func (p *VMPool) Dispose() error {
140 p.stopOnce.Do(func() { close(p.stop) })

Callers 15

MetaMethod · 0.80
GetMethod · 0.80
SaveMethod · 0.80
MakeDirMethod · 0.80
CopyMethod · 0.80
MoveMethod · 0.80
ListMethod · 0.80
DeleteMethod · 0.80

Calls 5

signalLockedMethod · 0.95
DisposeDisposablesMethod · 0.80
LockMethod · 0.65
UnlockMethod · 0.65
DisposeMethod · 0.65