small locking optimization

This commit is contained in:
Benson Wong
2025-05-02 23:18:07 -07:00
parent 448ccae959
commit e7ab024ca0

View File

@@ -57,14 +57,16 @@ func (pg *ProcessGroup) ProxyRequest(modelID string, writer http.ResponseWriter,
return fmt.Errorf("model %s not part of group %s", modelID, pg.id) return fmt.Errorf("model %s not part of group %s", modelID, pg.id)
} }
if pg.swap {
pg.Lock() pg.Lock()
if pg.swap && pg.lastUsedProcess != modelID { if pg.lastUsedProcess != modelID {
if pg.lastUsedProcess != "" { if pg.lastUsedProcess != "" {
pg.processes[pg.lastUsedProcess].Stop() pg.processes[pg.lastUsedProcess].Stop()
} }
pg.lastUsedProcess = modelID pg.lastUsedProcess = modelID
} }
pg.Unlock() pg.Unlock()
}
pg.processes[modelID].ProxyRequest(writer, request) pg.processes[modelID].ProxyRequest(writer, request)
return nil return nil