> -- Иван Денисов писал(а):
> Вам не по душе попытка Йозефа внедрить базовую поддержку сопрограмм в Блэкбокс? Были допущены недопустимые упрощения?Вот замечания Темпла "This package, however has a rather complex programming interface and is not integrated with the garbage collector and other Kernel services."
1. Вообще-то я добавил COROUTINES TO BLACKBOX, а не Templ.

> -- Иван Денисов писал(а):
> В Вашей реализации выполнение сопрограмм также в одном потоке? Почему вообще эта тема в ветке про "параллельное и многопоточное программирование"?
2. Co_ есть поддержка кооперативной многозадачности (Cooperative Multitasking), в новом модуле - нет.

> -- Иван Денисов писал(а):
> Согласен, что интерфейс очень сложный из-за того, что он не интегрирован, или по другой причине.
3.
Для сопрограмм используются модуль Co_Routines, Co_Tasks.
Для кооперативной многозадачности используется также планировщик SchedTasks.
Остальное - примеры.
И где тут сложность?

> -- Иван Денисов писал(а):
> По второму (BASED ON WINDOWS FIBERS).Йозеф отделил по своему логику от реализации. Мне не нравится как это сделано, но так получается наиболее простой интерфейс через наследование как Actions. Реализация вынесена в ядро, что не очень с точки зрения поддержки, но терпимо. Так что отчасти моё замечание снимается.
4. А у меня так:
BB Win - Windows Fibers
XDS Win/Linux - Modula COROUTINES
BB Linux - ucontext_t
Это - портабельный продукт

> -- Иван Денисов писал(а):
> Какова суть вашего предложения? Ничего не менять и использовать подсистему Co_ ? Что нужно сделать в Блэкбоксе для упрощения подсистемы Co_ ?
5. в Kernel нужна поддержка очистки локальных стеков "garbage collector and other Kernel services".
Но: в Kernel не должно быть зашито вызовов Windows Fiber только для модуля J Templ: Kernel.InitCoroutines, Kernel.AddCoroutine, Kernel.SetCoroutineBase, Kernel.RemoveCoroutine, Kernel.TransferCoroutine.
6. Co_ я сам подкручу