[TSan] Interlock and unlock MonoJitStats (#5437)
authorArmin Hasitzka <cherusker@users.noreply.github.com>
Mon, 11 Sep 2017 14:35:03 +0000 (16:35 +0200)
committermonojenkins <jo.shields+jenkins@xamarin.com>
Mon, 11 Sep 2017 14:35:03 +0000 (16:35 +0200)
commitcf9dff4bb808d9ff4f916ed21ce843ae24f35910
tree1547254cf94ceb0dd5ed01a9f2416c0b63b900e5
parent2d238eeb11ba7225e94651698d76c076b130f5c8
[TSan] Interlock and unlock MonoJitStats (#5437)

[TSan] Interlock and unlock MonoJitStats

This is the first part of telling TSan what to do with `MonoJitStats`; I dealt with all the `gint32` values and partly touched the `gboolean` value (see `FIXME`). However, `MonoJitStats` also contains `gdouble` which can (1) probably be interlocked and (2) will be updated in a later step, together with the `FIXME`, as soon as an updated version of the atomic interface exists.

I did my best to distinguish between perf. critical parts and parts where `Interlocked* ()` seems to work perfectly fine. As before, if I misjudged anything, I would kindly ask to comment the affected operations, and I will update them accordingly.

More (technical) details can be found in the commit messages.
13 files changed:
mono/mini/alias-analysis.c
mono/mini/aot-compiler.c
mono/mini/aot-runtime.c
mono/mini/driver.c
mono/mini/interp/transform.c
mono/mini/jit-icalls.c
mono/mini/lldb.c
mono/mini/local-propagation.c
mono/mini/mini-runtime.c
mono/mini/mini.c
mono/mini/mini.h
mono/mini/seq-points.c
mono/utils/unlocked.h