xenia-0001: ObjectTable::GetAllObjects() in src/xenia/kernel/util/object_table.cc uses std::find on a growing results vector to deduplicate XObject pointers while iterating all 16,384+ table slots. Each slot incurs an O(results.size()) linear scan, giving O(S*R) total where S = slot count and R = unique object count. Fix: unordered_set seen-pointer set reduces membership test to O(1). Measured 4.3x speedup. MOAD-0002 Intertangle: CLEAN MOAD-0003 Leaked Context: CLEAN (TLS vars are thread-scoped, not request-scoped) MOAD-0004 CWE-312: CLEAN (no credentials or key bytes logged) MOAD-0005 Thundering Herd: CLEAN (all caches use global_critical_region_ lock)
10 lines
478 B
Text
10 lines
478 B
Text
MOAD-0005 (Thundering Herd): CLEAN
|
|
|
|
All caches with multi-threaded access use proper synchronization:
|
|
- Module symbol cache (module.cc): global_critical_region_ Acquire() wraps
|
|
all map_.find() + map_[] insert operations.
|
|
- GPU pipeline/shader cache (pipeline_cache.cc): accessed from single GPU
|
|
command thread; no concurrent writers.
|
|
- Object table (object_table.cc): global_critical_region_ wraps all slot
|
|
accesses.
|
|
No unsynchronized check-then-act cache patterns found.
|