From 646d72c7c9a9f1c9e0669afb9bf78fb94e2ac523 Mon Sep 17 00:00:00 2001 From: John-John Tedro Date: Sat, 13 May 2023 01:23:06 +0200 Subject: [PATCH] Fix README --- README.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 151f1be..af299ca 100644 --- a/README.md +++ b/README.md @@ -15,10 +15,17 @@ Since this crate uses timing facilities from tokio it has to be used within a Tokio runtime with the [`time` feature] enabled. This library has some neat features, which includes: -* Not requiring a background thread or task to *drip*. Instead, one of the - waiting tasks assumes the duty as coordinator called the *core*. See below - for more details. -* Dropped tasks releases their partially acquired tokens. + +**Not requiring a background task**. This is usually needed by token bucket +rate limiters to drive progress. Instead, one of the waiting tasks +temporarily assumes the role as coordinator (called the *core*). This +reduces the amount of tasks needing to sleep, which can be a source of +jitter for imprecise sleeping implementations and tight limiters. See below +for more details. + +**Dropped tasks** release any resources they've reserved. So that +constructing and cancellaing asynchronous tasks to not end up taking up wait +slots it never uses which would be the case for cell-based rate limiters.