Fix C# profiler events from other threads

This commit is contained in:
Wojtek Figat
2021-06-12 20:10:16 +02:00
parent 93cdb7ce8f
commit 25c00a0d55
3 changed files with 29 additions and 16 deletions

View File

@@ -14,29 +14,21 @@
namespace ProfilerInternal
{
/// <summary>
/// The managed events IDs.
/// </summary>
Array<int32> ManagedEvents;
/// <summary>
/// The managed events IDs for GPU profiling.
/// </summary>
#if COMPILE_WITH_PROFILER
Array<int32> ManagedEventsGPU;
#endif
void BeginEvent(MonoString* nameObj)
{
#if COMPILE_WITH_PROFILER
const auto index = ProfilerCPU::BeginEvent((const Char*)mono_string_chars(nameObj));
ManagedEvents.Push(index);
ProfilerCPU::BeginEvent((const Char*)mono_string_chars(nameObj));
#endif
}
void EndEvent()
{
#if COMPILE_WITH_PROFILER
const auto index = ManagedEvents.Pop();
ProfilerCPU::EndEvent(index);
ProfilerCPU::EndEvent();
#endif
}