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)
}
pg.Lock()
if pg.swap && pg.lastUsedProcess != modelID {
if pg.lastUsedProcess != "" {
pg.processes[pg.lastUsedProcess].Stop()
if pg.swap {
pg.Lock()
if pg.lastUsedProcess != modelID {
if pg.lastUsedProcess != "" {
pg.processes[pg.lastUsedProcess].Stop()
}
pg.lastUsedProcess = modelID
}
pg.lastUsedProcess = modelID
pg.Unlock()
}
pg.Unlock()
pg.processes[modelID].ProxyRequest(writer, request)
return nil