[runtime] Implement tombstone scrubbing for our concurrent hashtables. (#9176)
commit737095247b7edb16bfc7d61e73965cc5a5211df5
authorRodrigo Kumpera <kumpera@users.noreply.github.com>
Fri, 22 Jun 2018 19:49:24 +0000 (22 15:49 -0400)
committerLudovic Henry <luhenry@microsoft.com>
Fri, 22 Jun 2018 19:49:24 +0000 (22 21:49 +0200)
tree7c7f0c82b432f9112c1d8cb9a0503fec528a7b09
parent7a327fa5f2e6d26bbd67204a3efe43d8f49d870f
[runtime] Implement tombstone scrubbing for our concurrent hashtables. (#9176)

* [runtime] Implement tombstone scrubbing for our concurrent hashtables.

Tombstones must be scrubbed as they can end up taking up all space of a hashtable and make lookup fail.

* [runtime] Added regression stress test for #9176

This test triggers insertion and removal from runtime_invoke_hash to the point
that if there's no scrubbing it will cause a deadlock.

* [runtime] Disable new test under full-aot as it uses SRE.
mono/metadata/mono-conc-hash.c
mono/tests/Makefile.am
mono/tests/dynamic-method-churn.cs [new file with mode: 0644]
mono/utils/mono-conc-hashtable.c