aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_bif_info.c
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2013-11-13 18:46:17 +0100
committerSverker Eriksson <[email protected]>2013-11-21 15:04:37 +0100
commit1f09936f34f5daee534bbfde4f16e5bbb434b6c4 (patch)
tree6c1c37e0d3505ddb0a56db763c57ec3a35366083 /erts/emulator/beam/erl_bif_info.c
parent522a29666088d5d96956d2752ffb1596d778cffd (diff)
downloadotp-1f09936f34f5daee534bbfde4f16e5bbb434b6c4.tar.gz
otp-1f09936f34f5daee534bbfde4f16e5bbb434b6c4.tar.bz2
otp-1f09936f34f5daee534bbfde4f16e5bbb434b6c4.zip
erts: Yield after trapping term_to_binary if gc has been ordered
or if "too much" offheap binaries has been built
Diffstat (limited to 'erts/emulator/beam/erl_bif_info.c')
-rwxr-xr-xerts/emulator/beam/erl_bif_info.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/erts/emulator/beam/erl_bif_info.c b/erts/emulator/beam/erl_bif_info.c
index f5893f9291..39bbd6b182 100755
--- a/erts/emulator/beam/erl_bif_info.c
+++ b/erts/emulator/beam/erl_bif_info.c
@@ -3603,8 +3603,9 @@ BIF_RETTYPE erts_debug_set_internal_state_2(BIF_ALIST_2)
default: BIF_ERROR(BIF_P, BADARG); break;
}
- res = erts_set_gc_state(BIF_P, enable);
- BIF_RET(res ? am_true : am_false);
+ res = (BIF_P->flags & F_DISABLE_GC) ? am_false : am_true;
+ erts_set_gc_state(BIF_P, enable);
+ BIF_RET(res);
}
else if (ERTS_IS_ATOM_STR("send_fake_exit_signal", BIF_ARG_1)) {
/* Used by signal_SUITE (emulator) */