I'm noticing an issue with pplx::details::do_while.
It appears that any long operation that gets rapidly scheduled will create a very long task chain. This consumes a large amount of memory (certainly in our application). Is this a known issue? Do you have a work around? It appears its due to the then clause in the do_while.
If the func call returns a pplx::task_from_result that contains a conditional based on the work done in the function, the then will schedule instantly. It appears that the original task does not get torn down until the continuations complete from the func returning a task<false>. This creates a large chain of tasks.
Any help would be appreciated.
Comments: The create_iterative_task function I mentioned can be found here : https://pplpp.codeplex.com/wikipage?title=Task%20continuation%20loop&referringTitle=Documentation
It appears that any long operation that gets rapidly scheduled will create a very long task chain. This consumes a large amount of memory (certainly in our application). Is this a known issue? Do you have a work around? It appears its due to the then clause in the do_while.
If the func call returns a pplx::task_from_result that contains a conditional based on the work done in the function, the then will schedule instantly. It appears that the original task does not get torn down until the continuations complete from the func returning a task<false>. This creates a large chain of tasks.
Any help would be appreciated.
Comments: The create_iterative_task function I mentioned can be found here : https://pplpp.codeplex.com/wikipage?title=Task%20continuation%20loop&referringTitle=Documentation