labath added a comment.

In D100418#2689425 <https://reviews.llvm.org/D100418#2689425>, @mgorny wrote:

> In D100418#2689348 <https://reviews.llvm.org/D100418#2689348>, @labath wrote:
>
>> I've been thinking about whether this should be done here, or via a separate 
>> multiplexer entity. It's not clear to me which one is cleaner so I suppose 
>> we can go with what you have done here.
>>
>> That said, I'm not too happy about this callback_id business. IIUC, it's 
>> only there to enable removing a specific callback (because you can't have a 
>> set of std::functions). But there are other ways to achieve that, and they 
>> don't leak this detail to the users. One option would be to hold the 
>> callbacks in a std::list, and use the (stable) iterator as the ID....
>>
>> It could also use a test... something like, register a callback, fire a 
>> signal and check it's called, registers a second callback and check that 
>> both are called, unregister the first one and check that only the second one 
>> is called, ...
>
> Hmm, my first though was to use a `static int` that increases with every 
> call. But the `std::list` idea is interesting, so I'll explore that.

That would work too, though it should definitely be a member variable instead 
of a global (thread safety). The only difference should be in the memory 
footprint. I suspect the list solution will be slightly smaller, unless you use 
DenseMap. OTOH, a DenseMap with only a few items tends to waste space...


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D100418/new/

https://reviews.llvm.org/D100418

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to