Как использовать Boost.Coroutine с Boehm GC?

Boost.Coroutine выделяет свои собственные стеки вызовов. Считает ли Boehm GC указатели на эти стеки корнями, и если нет, то как я могу это сделать? После переключения контекста на сопрограмму, Бем завершает программу.

1

Решение

Предположительно код в Boost.Coroutine сохраняет указатель на стек вызовов, который он выделяет, и сохраняет его в одном из «обычных» мест для хранения указателей (например, в некоторой переменной указателя).

Если это так, то да, GC будет «преследовать» указатель от переменной, в которой он хранится в стеке вызовов, и оттуда (рекурсивно) через любые указатели, которые он содержит.

2

Другие решения