mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-24 07:28:13 +02:00
Optimiseur : relecture — slot fixe sous SIDE_SLOT, moteur mort vu tôt, verrou réécrit sous Windows
- Avec SIDE_SLOT, les tours en profondeur d'un essai restent sur le second slot : la reprise du cache ne dépend plus du slot choisi par le moteur - Après application, un moteur qui meurt au chargement (OOM) ramène l'ancienne version en quelques secondes au lieu d'attendre le délai entier - La réécriture du verrou (essai en cours) réessaie quand Windows refuse de remplacer un fichier lu au même instant Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
9bffff78c2
commit
9d02592d4f
2 files changed
+33
-5
No files matched your search
@@ -197,7 +197,18 @@ func (l *tuneLock) write() error {
|
||||
if err := os.WriteFile(tmp, b, 0o644); err != nil {
|
||||
return err
|
||||
}
|
||||
return os.Rename(tmp, l.path)
|
||||
// Windows refuse de remplacer un fichier qu'un autre processus lit à cet
|
||||
// instant (tuneGuard d'une requête) : on réessaie un peu avant de renoncer.
|
||||
for i := 0; ; i++ {
|
||||
err := os.Rename(tmp, l.path)
|
||||
if err == nil || i == 4 {
|
||||
if err != nil {
|
||||
_ = os.Remove(tmp)
|
||||
}
|
||||
return err
|
||||
}
|
||||
time.Sleep(50 * time.Millisecond)
|
||||
}
|
||||
}
|
||||
|
||||
// setTrial note l'essai en cours (nil : aucun), AVANT qu'il ne charge quoi que
|
||||
|
||||
Reference in new issue
Block a user