On 29/08/2022 01:58, chris-boostusers wrote:
I have a list of CPU-bound tasks I need to perform.  I'll list two of them here:

    a) compute first zillion digits of pi (low priority)
    b) add two plus two (high priority)

I co_spawn (a).  Later, while (a) is running, I co_spawn (b).  (a) will be suspended at a "co_suspension_point" so that (b) can take over.  Of course when (b) completes, (a) will resume.

For bonus points, it will support multiple threads (probably easy) and a task's priority can change over time (probably hard).

Scheduling coroutines is in Boost.Fiber's wheelhouse. I don't think it provides a priority-based scheduler out of the box, but it does discuss it as a customisation point at:

https://www.boost.org/doc/libs/1_80_0/libs/fiber/doc/html/fiber/scheduling.html
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
https://lists.boost.org/mailman/listinfo.cgi/boost-users

Reply via email to