4 tests to illustrate the LLJIT API in combinations of sequential/concurrent and single/multi dylib.
Requires: https://reviews.llvm.org/D51126
I am using thread-local scope-exit guards to join worker threads back to their correct origins. This works surprisingly well! It's definitely dangerous with long-living threads as resources can get stuck for long. OTOH it's quite simple compared to tracking the instances in containers that require locks etc...
What do you think?