diff options
author | Sverker Eriksson <[email protected]> | 2013-11-13 18:46:17 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2013-11-21 15:04:37 +0100 |
commit | 1f09936f34f5daee534bbfde4f16e5bbb434b6c4 (patch) | |
tree | 6c1c37e0d3505ddb0a56db763c57ec3a35366083 /erts/emulator/beam/erl_bif_info.c | |
parent | 522a29666088d5d96956d2752ffb1596d778cffd (diff) | |
download | otp-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-x | erts/emulator/beam/erl_bif_info.c | 5 |
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) */ |