···335335 }
336336337337 async fn wait(&self) {
338338- // Wait for a permit to become available
339339- // This will block until a permit is available (from refill task)
340340- let _ = self.semaphore.acquire().await;
338338+ let permit = self.semaphore.acquire().await.expect("semaphore closed");
339339+ permit.forget();
341340 }
342341343342 fn available_permits(&self) -> usize {