On Tue Aug 26 14:45:23 2025 +0000, Vibhav Pant wrote:
Ah, `rb_tree` could make support iterators trickier, this looks much better. Thanks :)
Well fwiw I'm not sure anymore about the thread safety, like you said it seems it is supposed to be guarded if we consider the Rust projection. OTOH the SDK headers also are apparently quite obviously unsafe at least in the IMap templated implementation. I checked again my tests and it's very possible that the crash I was able to trigger was caused by some overlook on my part (I had a thread wait timeout and perhaps it went past it, releasing the map while threads were still using it).
Overall it looks like either PropertySet has a dedicated, safe, IMap implementation, or it adds a lock around every generic unsafe IMap calls (which maybe also require some wrappers around the associated objects).