================ @@ -227,7 +265,7 @@ class ThreadPool { class ThreadPoolTaskGroup { ---------------- joker-eph wrote:
> Uniqueness is "guaranteed" through memory addressing. Someone can break > uniqueness when going through the public ThreadPool API. How so? > Type safety; sure you don't have implicit conversions going on. There is much more than: the API is constrained to say: "it operates on an instance of a TaskGroup object". This is a very important API: it is explicit in terms of the scope on which it operates, and the fact that it care about the **actual instance** of the TaskGroup object. > So what I think is that instead of passing *this you can convert the address > to a string/int and pass this instead; hence you don't lose any guarantees. I > understand your arguments but I find this a bit more decoupled. As I said above, I would have strong concerns with this: it is a weak API (it is open to any integer and does not carry the semantics I described above) and "unsafe", just like using `void*`. There is not way for a user to know what integer to pass here for example. As a user such API is highly confusing and really I'm not sure what the pattern would be other than always casting the address of the task group to an int. https://github.com/llvm/llvm-project/pull/82094 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits