Async Rust ekosisteminde "snoozing" olarak adlandırılan durum, bir future'ın ilerlemeye hazır olmasına rağmen yürütücü tarafından yoklanmaması (poll edilmemesi) halidir. Bu durum, özellikle "Futurelock" gibi vakalarla async Rust'taki birçok takılma ve kilitlenmenin (deadlock) temel nedeni olarak gösterilmektedir. Makale, snoozing'in neredeyse her zaman bir hata olduğunu, buna yol açan araç ve desenlerin zararlı kabul edilmesi gerektiğini ve güvenilir alternatiflerin mümkün olduğunu savunuyor. Snoozing, iptal (cancellation) veya kaynak yetersizliği (starvation) gibi diğer async sorunlarından farklıdır; iptal, bir future'ın artık yoklanmayacak olması anlamına gelirken, starvation yürütücünün meşgul olması nedeniyle diğer future'ların yoklanamamasıdır. Snoozing ise sistemin boşta olmasına rağmen bir future'ın uyanma talebine rağmen yoklanmamasıdır.
Snoozing, uygulamalarda açıklanamayan gecikmelere ve zaman aşımlarına neden olabilir; ancak en belirgin ve dramatik etkileri kilitlenmelerdir. Makale, birden fazla future'ı eş zamanlı olarak yoklayan tek bir görevin, daha önce yoklamaya başladığı bir future'ı asla yoklamayı bırakmamasına dikkat edilmesi gerektiğini vurgular. Örneklerle, async kilitler, semaforlar veya sınırlı kanallar gibi herhangi bir async bekleme formuyla snoozing kaynaklı kilitlenmelerin nasıl ortaya çıkabileceği gösterilir. Tokio dokümanlarındaki async kilitler yerine mümkün olduğunca normal kilitlerin kullanılmasını öneren tavsiyenin iyi olduğunu, ancak orijinal "Futurelock" hatasının dahili olarak tokio::sync::mpsc kanallarının kullandığı bir semafor üzerindeki kilitlenme olduğunu belirtir.
Yazar, async Rust'ta iptal hatalarının büyük bir konu olduğunu ve konuşulmasının iyi olduğunu kabul ederken, iptalin kendisinin bir hata olmadığını belirtir. Ancak snoozing'in bir hata olduğunu ve yeterince konuşulmadığını vurgular. Bu durumun önüne geçmek için geliştiricilerin async programlama desenlerini ve araçlarını daha dikkatli seçmeleri, future'ların her zaman ilerleme kaydedebileceği veya düzgün bir şekilde iptal edilebileceği yapıları tercih etmeleri gerektiği ima edilir.
Async Rust uygulamalarında performans sorunları ve kilitlenmelerin temel nedenlerinden biri olan "snoozing" kavramının anlaşılması ve önlenmesi, daha kararlı ve verimli sistemler geliştirmek için kritik öneme sahiptir.