aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam
diff options
context:
space:
mode:
authorMikael Pettersson <[email protected]>2010-01-27 11:40:10 +0100
committerBjörn Gustavsson <[email protected]>2010-01-27 16:35:07 +0100
commit24146d322cd165c995d3a698e888cdb6f7a10741 (patch)
treeef5a59da1332e94be5b5e45cca6e823cb5302083 /erts/emulator/beam
parent38cec58103fb69b995e29cdd186061b8dc233d9d (diff)
downloadotp-24146d322cd165c995d3a698e888cdb6f7a10741.tar.gz
otp-24146d322cd165c995d3a698e888cdb6f7a10741.tar.bz2
otp-24146d322cd165c995d3a698e888cdb6f7a10741.zip
work around hipe_mfa_info_table lock omission
HiPE maintains per-MFA information such as native code entry point in a table. This table was thought to be read-only at runtime, except when the loader populates it, so it employed no locking. That turned out to be incorrect: if there is an apply of a previously unseen MFA, a native code stub for that MFA is created and recorded in the table, causing it to grow. Work around this for now by slapping a mutex around accesses to that table. Signed-off-by: Mikael Pettersson <[email protected]>
Diffstat (limited to 'erts/emulator/beam')
-rw-r--r--erts/emulator/beam/erl_lock_check.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_lock_check.c b/erts/emulator/beam/erl_lock_check.c
index 25f1d420d1..937916272c 100644
--- a/erts/emulator/beam/erl_lock_check.c
+++ b/erts/emulator/beam/erl_lock_check.c
@@ -75,6 +75,9 @@ static erts_lc_lock_order_t erts_lock_order[] = {
* the lock name)"
*/
#ifdef ERTS_SMP
+#ifdef HIPE
+ { "hipe_mfait_lock", NULL },
+#endif
{ "driver_lock", "driver_name" },
{ "port_lock", "port_id" },
#endif