PriorityQueue - Rust #005 - Graceful Shutdown
Dans cette vidéo, on poursuit la conception de notre PriorityQueue bloquante et thread-safe, en y ajoutant la maîtrise du temps d'attente et des modes d'arrêt contrôlés.
Au programme
- Simplification de dequeue() et try_dequeue() (plus besoin de &mut self)
- Sécurisation du constructeur avec assert!(n_prio > 0)
- Compréhension des spurious wakeups et usage de wait_while()
- Implémentation d'un arrêt gracieux (shutdown_graceful)
- Implémentation d'un arrêt avec délai maximum (shutdown_timeout)
- Validation par des tests complets : immédiat, gracieux, et avec timeout
Notre file devient désormais sûre, prévisible et maîtrisée dans le temps, prête à passer au monde asynchrone.
Liens utiles
Code source : github.com/xigh/pq-async-rs
PriorityQueue en Rust -- série vidéo
- PriorityQueue - Rust #001
- PriorityQueue - Rust #002 - Équité
- PriorityQueue - Rust #003 - Multithreading
- PriorityQueue - Rust #004 - Blocking Dequeue
- PriorityQueue - Rust #005 - Graceful Shutdown
- PriorityQueue - Rust #006 - async/await