From 24146d322cd165c995d3a698e888cdb6f7a10741 Mon Sep 17 00:00:00 2001 From: Mikael Pettersson Date: Wed, 27 Jan 2010 11:40:10 +0100 Subject: 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 --- erts/emulator/beam/erl_lock_check.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'erts/emulator/beam/erl_lock_check.c') 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 -- cgit v1.2.3