- Fix critical deadlock in IntraIOManager using std::scoped_lock for multi-mutex acquisition (CrossSystemIntegration: 1901s → 4s) - Add std::shared_mutex for read-heavy operations (TopicTree, IntraIOManager) - Fix SEGFAULT in SequentialModuleSystem destructor (logger guard) - Fix SEGFAULT in ModuleLoader (don't auto-unload when modules still alive) - Fix iterator invalidation in DependencyTestEngine destructor - Add TSan/Helgrind integration for deadlock detection - Add coding guidelines for synchronization patterns All 23 tests now pass (100%) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
44 lines
759 B
Plaintext
44 lines
759 B
Plaintext
# helgrind.supp - Suppress known false positives
|
|
# Format: https://valgrind.org/docs/manual/manual-core.html#manual-core.suppress
|
|
|
|
# spdlog false positives (lazy initialization)
|
|
{
|
|
spdlog_registry_instance
|
|
Helgrind:Race
|
|
fun:*spdlog*registry*instance*
|
|
}
|
|
|
|
{
|
|
spdlog_logger_creation
|
|
Helgrind:Race
|
|
...
|
|
fun:*spdlog*
|
|
}
|
|
|
|
# std::thread false positives
|
|
{
|
|
std_thread_detach
|
|
Helgrind:Race
|
|
fun:*std*thread*
|
|
}
|
|
|
|
# C++ static initialization race (benign)
|
|
{
|
|
static_initialization_guard
|
|
Helgrind:Race
|
|
fun:__cxa_guard_acquire
|
|
}
|
|
|
|
# Helgrind doesn't understand std::atomic properly
|
|
{
|
|
atomic_load
|
|
Helgrind:Race
|
|
fun:*atomic*load*
|
|
}
|
|
|
|
{
|
|
atomic_store
|
|
Helgrind:Race
|
|
fun:*atomic*store*
|
|
}
|