[release/8.0] Fix a deadlock in NonGC + Profiler API (#91130)
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Fri, 25 Aug 2023 22:25:32 +0000 (15:25 -0700)
committerGitHub <noreply@github.com>
Fri, 25 Aug 2023 22:25:32 +0000 (15:25 -0700)
commit787948621e8a0b1263062b8bb1c1f85436f7423f
treee523a0b6d4a31cd9a669896252648196938f3bee
parentcf296b107a58df21a0aaae74b65a54a54ffec3a0
[release/8.0] Fix a deadlock in NonGC + Profiler API (#91130)

* Address Jan's feedback

* Fix Debug build

* Clean up

* Fix debug assert

* Update frozenobjectheap.cpp

* Address feedback

* fix build

* Update src/coreclr/vm/frozenobjectheap.cpp

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Address feedback

* Add gc lock for UpdateFrozenSegment

* Address feedback

* Oops, revert unrelated change

* Use preemptive for the whole method

* PublishFrozenObject has to be called in COOP

* Update src/coreclr/vm/frozenobjectheap.cpp

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Address feedback

* Add asserts

* Address feedback

* fix build

* Address feedback

* Update src/coreclr/vm/frozenobjectheap.cpp

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
---------

Co-authored-by: EgorBo <egorbo@gmail.com>
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
src/coreclr/gc/gc.cpp
src/coreclr/gc/gcee.cpp
src/coreclr/gc/gcpriv.h
src/coreclr/vm/appdomain.hpp
src/coreclr/vm/frozenobjectheap.cpp
src/coreclr/vm/frozenobjectheap.h
src/coreclr/vm/gchelpers.cpp
src/coreclr/vm/methodtable.cpp
src/coreclr/vm/profilingenumerators.cpp
src/coreclr/vm/proftoeeinterfaceimpl.cpp