Open WorkingRobot opened 1 week ago
ah yeah that was likely an oversight when initially changing this to work a bit nicer in async/threaded environments - happy for this to move to a concurrentdict though if you'd like to PR it, as there's not really a trivial lock that would make this work nicely i think
https://github.com/NotAdam/Lumina/blob/bb7d83631a3e878017f16ee84e42e9f794868b88/src/Lumina/Excel/LazyRow.cs#L32
This being a static non-concurrent dictionary can cause concurrency issues when parsing new rows. Here is a stacktrace I've seen regarding this issue:
Obviously in code like the following, a dictionary lookup like that (L63) should never fail unless there is a race condition of some sort. https://github.com/NotAdam/Lumina/blob/bb7d83631a3e878017f16ee84e42e9f794868b88/src/Lumina/Excel/LazyRow.cs#L53-L66