4 Days Ago
Bugfix: Prevent data races leading to torn continuous profiler snapshots - Binary built using Release conf based on 237b5df3 commit - Both Resume and Stop happen on profiler frame end (previously Resume was instant) - Stop gets deferred to after snapshot is exported if requested during processing - Profiler, if in initialized, always gets called on new frame (since internal state machine demands more steps than the user code can know about) - Updated continuous profiling unit test to acoount for extra OnFrameEnd required It was possible that a stop is requested during export process, leading to use-after-free exceptions on a managed thread and torn snapshot. Tests: unit tests + 20 manual watchallocs->stopwatchingallocs calls