El drain calcula su largo antes: el MutexGuard no admite el prestamo doble
`n.cola.drain(0..enviados.min(n.cola.len()))` no compila: el argumento pide un prestamo inmutable de `n.cola` cuando ya esta prestado mutable, y a traves del MutexGuard —un deref explicito, no un autoref— el two-phase borrow no lo cubre (E0502, el UNICO error que encontro el CI en todo el sensor). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Este commit está contenido en:
@@ -229,7 +229,11 @@ fn enviar<R: Runtime>(app: &AppHandle<R>) {
|
|||||||
pintar_menu(app, "sin vincular", &cfg);
|
pintar_menu(app, "sin vincular", &cfg);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
n.cola.drain(0..enviados.min(n.cola.len()));
|
// El largo se calcula ANTES del drain: dentro del argumento sería un préstamo inmutable
|
||||||
|
// mientras `n.cola` ya está prestado mutable — a través del MutexGuard (un deref
|
||||||
|
// explícito) el two-phase borrow no lo cubre, y no compila.
|
||||||
|
let hasta = enviados.min(n.cola.len());
|
||||||
|
n.cola.drain(0..hasta);
|
||||||
if n.cola.len() > MAX_COLA_LOTES {
|
if n.cola.len() > MAX_COLA_LOTES {
|
||||||
let sobra = n.cola.len() - MAX_COLA_LOTES;
|
let sobra = n.cola.len() - MAX_COLA_LOTES;
|
||||||
n.cola.drain(0..sobra); // sin red por semanas: se suelta lo más viejo, no lo nuevo
|
n.cola.drain(0..sobra); // sin red por semanas: se suelta lo más viejo, no lo nuevo
|
||||||
|
|||||||
Referencia en una nueva incidencia
Block a user