This looks mostly good, I have some nitpicks and some questions (see below and inline diff):
* You didn't metnion at all about the ignore_partial_results which leads to 2 different conditions (we want to ignore them or not). I think that ought some mention in the patch description.
* I'm unsure to understand what the meta_requests are and why they are treated differently (and unconditionnally). Is it a queue before them becoming the current requests, and this is why you are cancelling if the invocation caller matches as well?
This looks mostly good, I have some nitpicks and some questions (see below and inline diff): partial_ results which leads to 2 different conditions (we want to ignore them or not). I think that ought some mention in the patch description.
* You didn't metnion at all about the ignore_
* I'm unsure to understand what the meta_requests are and why they are treated differently (and unconditionnally). Is it a queue before them becoming the current requests, and this is why you are cancelling if the invocation caller matches as well?