Bin Yan
Bin Yan

Reputation: 129

Why does boost not support symmetric coroutine?

In the (deprecated) boost::coroutines, both asymmetric and symmetric coroutine are supported. However, in the latest boost::coroutines2, only asymmetric is supported.

This list states that symmetric coroutine is better represented by boost::context::execution_context. However, from the document of execution_context, execution_context is again deprecated.

So, is symmetric coroutine(or a similar semantics) supported by the current boost library? If boost refuses to provide such an implementation, what's the reason?

I know from the boost doc that asymmetric coroutine and symmetric coroutine have the same expressive power, but it's inconvenient for me to waste time building a symmetric abstraction on top of asymmetric one.

Upvotes: 0

Views: 292

Answers (1)

Bin Yan
Bin Yan

Reputation: 129

I just found that boost::context provides callcc and continuation, which is sufficient to use as a symmetric coroutine.

Upvotes: 2

Related Questions