mirror of
https://github.com/Steffo99/appunti-magistrali.git
synced 2024-11-22 18:44:17 +00:00
38 lines
758 B
Markdown
38 lines
758 B
Markdown
[[algoritmo]] ***[[algoritmo corretto|incorretto]]*** di [[broadcast problem]].
|
|
|
|
## Funzionamento
|
|
|
|
Il [[leader]] invia il suo messaggio iniziale a tutti i vicini, e loro lo inoltrano a loro volta ai loro vicini.
|
|
## [[Comportamento]]
|
|
|
|
### `LEADER`
|
|
|
|
All'[[impulso spontaneo|inizio dell'algoritmo]], invia il suo messaggio:
|
|
```rust
|
|
spontaneously! {
|
|
send!(*, Message {...});
|
|
}
|
|
```
|
|
|
|
Se lo riceve indietro, non fa niente:
|
|
```rust
|
|
on_receive! {
|
|
_ => {},
|
|
}
|
|
```
|
|
|
|
### `SLEEPING`
|
|
|
|
Se riceve il messaggio, lo inoltra a tutti i suoi vicini:
|
|
```rust
|
|
on_receive! {
|
|
_ => send!(*, msg)
|
|
}
|
|
```
|
|
|
|
## [[algoritmo corretto|Correttezza]]
|
|
|
|
> [!DANGER] Algoritmo incorretto
|
|
>
|
|
> Questo algoritmo non termina mai!
|
|
> È riportato qui solo come base per le due versioni successive.
|