Hello,

I copy paste the main idea from an article I have written:
contextual async

"

Imagine you have some code written for monothread. And you want to include your code in a multithread environment.  Do you need to adapt all your code which is what you do when you want to migrate to async code ? The answer is no.

Functionnally these constraints are not justified neither technically

Do we have the tools to do this ? Yes because thanks to boost::context we can switch context between tasks. When a task suspends, it just calls a function (the event loop or reactor) to potentially switch to another task. Just like threads switch contexts…

Async/Await logic has introduced a symetric relation wich introduces unnecessary contraints. We should just the same logic as thread logic.

"

Read the examples in the article I have developped a prototype in C++ and everything works perfectly.

My opinion is that sooner or later, it will have to switch to this logic because chaining async/aswait is a huge contraints and does not make sense in my opinion.

Maybe I am missing something,

Feel free to give me your feedback.

Regards,


Chris