Make the loading of llvm EH info async safe. (#4725)
authorZoltan Varga <vargaz@gmail.com>
Sun, 23 Apr 2017 23:16:49 +0000 (19:16 -0400)
committerGitHub <noreply@github.com>
Sun, 23 Apr 2017 23:16:49 +0000 (19:16 -0400)
commit1debf3934120547b3003c0ec4ec90bae4b08ee13
treec460b50fcc7ff18c98a60d5feac5204eb0163140
parent2cb98cb8edac01f54ce4fb393b293aa1a60d0d72
Make the loading of llvm EH info async safe. (#4725)

* [aot] Emit class references in EH info in such as way that they can be skipped when reading them in async context.

* [aot] Rewrite the LLVM EH info loading code by moving allocations to callers so the lower level code is async safe.

* [aot] Make the memory allocation in the loading of llvm EH info async safe. Remove fields from MonoLLVMFDEInfo which are passed as parameters.

* [runtime] Add the ability to store the unwind info address/length in the MonoJitInfo structure instead of referencing it using the 'unwind_info' field.

* [aot] Make the loading of llvm EH information async safe.
mono/metadata/domain-internals.h
mono/metadata/jit-info.c
mono/mini/aot-compiler.c
mono/mini/aot-runtime.c
mono/mini/mini-exceptions.c
mono/mini/mini-llvm.c
mono/mini/mini-unwind.h
mono/mini/mini.h
mono/mini/unwind.c