Сопрограмма — повторное использование?

В настоящее время я размещаю новые экземпляры сопрограмм довольно часто (см. Код в моем ответе Вот).

Накладные расходы это не тривиально.

Я предполагаю, что есть какой-то способ сделать это дешевле, используя ранее выделенную сопрограмму?

Не знаете, как этого добиться?

Я мог бы использовать boost :: pool для сопрограммы Allocator, Однако это не сработает для StackAllocator, который является дорогим …

2

Решение

Сопрограмма содержит стек и управляющий блок (сохраненные регистры, размещенные на краю стека).
Вы не можете повторно использовать саму сопрограмму, но вы можете написать свой собственный стековый распределитель, который предварительно выделяет и кэширует стеки.
Вновь созданная сопрограмма может повторно использовать уже выделенный стек из кэша.

2

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


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector