[NativeAOT] Asynchronous thread suspension at GC safe points on Windows (#70316)
authorVladimir Sadov <vsadov@microsoft.com>
Thu, 9 Jun 2022 00:28:12 +0000 (17:28 -0700)
committerGitHub <noreply@github.com>
Thu, 9 Jun 2022 00:28:12 +0000 (17:28 -0700)
commitdc3a6ac663c17f5f0e88152e001704d94d906d84
treeb63abaf21c9236fc400fd1a7d490e55633cd45df
parente539d5ff45c423c159d20f7542076ae6f4502f4a
[NativeAOT] Asynchronous thread suspension at GC safe points on Windows (#70316)

* simple case works

* FEATURE_SUSPEND_REDIRECTION

* AVX support

* refactor

* no need for asm

* ARM64

* stub `IsSafePoint` on Unix

* revert unnecessary changes to RhpGcPoll2

* no copy of redirect context

* Specialcase active frames in EnumGcRefs

* remove bogus assert.
15 files changed:
src/coreclr/nativeaot/Runtime/CMakeLists.txt
src/coreclr/nativeaot/Runtime/ICodeManager.h
src/coreclr/nativeaot/Runtime/PalRedhawk.h
src/coreclr/nativeaot/Runtime/StackFrameIterator.cpp
src/coreclr/nativeaot/Runtime/StackFrameIterator.h
src/coreclr/nativeaot/Runtime/arm64/GcProbe.asm
src/coreclr/nativeaot/Runtime/gcrhenv.cpp
src/coreclr/nativeaot/Runtime/gcrhinterface.h
src/coreclr/nativeaot/Runtime/thread.cpp
src/coreclr/nativeaot/Runtime/thread.h
src/coreclr/nativeaot/Runtime/unix/UnixNativeCodeManager.cpp
src/coreclr/nativeaot/Runtime/unix/UnixNativeCodeManager.h
src/coreclr/nativeaot/Runtime/windows/CoffNativeCodeManager.cpp
src/coreclr/nativeaot/Runtime/windows/CoffNativeCodeManager.h
src/coreclr/nativeaot/Runtime/windows/PalRedhawkMinWin.cpp