From 283a7d098538be2097a5d4d6e75422ca14e7e4e3 Mon Sep 17 00:00:00 2001 From: Rickard Green Date: Mon, 16 Apr 2018 12:29:58 +0200 Subject: Fix deadlock in HiPE gc after receive --- erts/emulator/beam/erl_gc.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'erts/emulator/beam') diff --git a/erts/emulator/beam/erl_gc.c b/erts/emulator/beam/erl_gc.c index ea87cd7f50..b498fd9cf9 100644 --- a/erts/emulator/beam/erl_gc.c +++ b/erts/emulator/beam/erl_gc.c @@ -438,6 +438,13 @@ erts_gc_after_bif_call_lhf(Process* p, ErlHeapFragment *live_hf_end, return result; } +#ifdef HIPE + if (p->hipe_smp.have_receive_locks) { + /* Do not want to GC with message queue locked... */ + return result; + } +#endif + if (!p->mbuf) { /* Must have GC:d in BIF call... invalidate live_hf_end */ live_hf_end = ERTS_INVALID_HFRAG_PTR; -- cgit v1.2.3