In working on examples and talking over the meaning of the num_threads parameter, it seems that what we really mean is not threads but contexts.
For example, when we create a team and specify that we will need up to 4 contexts with num_threads=4, the following cases hold:
A single thread cannot make 6 contexts, since we have only reserved network resources for 4
If there are 6 threads, we could make 4 contexts in 4 threads, then destroy them, then make 2 more contexts in two different threads.
So, this parameter does not exactly describe the functionality and may lead to users thinking that the previous cases are not true.
The number of threads in use may be something that the implementation can optimize for, but this is orthogonal to the number of contexts a team can create.
In working on examples and talking over the meaning of the num_threads parameter, it seems that what we really mean is not threads but contexts.
For example, when we create a team and specify that we will need up to 4 contexts with num_threads=4, the following cases hold:
So, this parameter does not exactly describe the functionality and may lead to users thinking that the previous cases are not true.
The number of threads in use may be something that the implementation can optimize for, but this is orthogonal to the number of contexts a team can create.