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: That's great. I can confirm after testing this in our application, that this works. Many thanks for the quick response.
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: That's great. I can confirm after testing this in our application, that this works. Many thanks for the quick response.