L'errore a tempo di compilazione impedisce il passaggio di tipi non thread-safe (come Rc o puntatori raw) tra thread diversi o attraverso chiamate 'tokio::spawn', richiedendo l'uso di equivalenti atomici come Arc.
E0277_SEND
→
L'errore compare quando si tenta di condividere un riferimento immutabile &T tra più thread simultaneamente senza che il tipo implementi il trait 'Sync', tipicamente risolvibile avvolgendo il tipo in un Mutex o RwLock.
E0277_SYNC
→
Il panic indica che un thread ha acquisito un Mutex della standard library e poi è andato in panic prima di rilasciarlo, avvelenando (poisoning) il lock per proteggere gli altri thread da dati potenzialmente corrotti.
MUTEX_POISONED
→
La barriera di sincronizzazione 'Barrier::new(n)' blocca tutti i thread chiamanti fino a quando esattamente 'n' thread non invocano 'barrier.wait()'; se uno dei thread termina precocemente o va in panic, tutti gli altri rimangono congelati per sempre.
BARRIER_DEADLOCK
→
L'anomalia provoca il blocco permanente del thread quando lo stesso thread tenta di acquisire nuovamente un 'std::sync::Mutex' già in suo possesso prima di aver rilasciato il guard del lock precedente.
DEADLOCK_MUTEX
→
Se più thread mantengono ininterrottamente lock di lettura ('rwlock.read()'), il thread che richiede l'accesso esclusivo in scrittura ('rwlock.write()') può rimanere bloccato a tempo indefinito a seconda della policy di schedulazione del sistema operativo.
RWLOCK_STARVATION
→