You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix heap corruption and crashes from thread safety issues
Add mutex synchronization to prevent concurrent access to projectM state:
- Add std::recursive_mutex to ProjectM class protecting RenderFrame,
LoadPresetFile, LoadPresetData, SetWindowSize, SetPresetLocked,
SetTexturePaths, ResetTextures, and BurnInTexture
- Add std::mutex to PCM class protecting audio buffer writes (Add) and
reads (UpdateFrameAudioData) from concurrent audio/render threads
- Replace m_start from std::atomic<size_t> to plain size_t (now mutex-protected)
- Implement EvalLibMutex lock/unlock with actual std::mutex (was no-op stubs)
- Fix null pointer dereference in SpriteManager::Draw when m_transitioningPreset
is nullptr after transition completes
- Expose RenderMutex() accessor for external synchronization
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
0 commit comments