Introduce a generic way to spawn blocking tasks, adding an optional
timeout option and a retry mechanism.
The spawned task will subscribe to a set of keys and will be awaken
everytime the data version changes in any of the watched keys. The
worker function will return true or false, false meaning they want to be
rescheduled again.
This mechanism will improve CPU usage on current approach which is
sleep/retry every few milliseconds, which is suboptimal to say the
least.
Introduce a generic way to spawn blocking tasks, adding an optional timeout option and a retry mechanism.
The spawned task will subscribe to a set of keys and will be awaken everytime the data version changes in any of the watched keys. The worker function will return true or false, false meaning they want to be rescheduled again.
This mechanism will improve CPU usage on current approach which is sleep/retry every few milliseconds, which is suboptimal to say the least.
Fixes #52