diff options
author | Sverker Eriksson <[email protected]> | 2010-01-13 11:35:13 +0000 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2010-01-13 14:58:31 +0100 |
commit | bcf62deb7b8534b00ce69c977466a009252ee8a5 (patch) | |
tree | 237405be3ddf2b984399926f68856ad7036631aa /erts/emulator/beam/erl_bif_info.c | |
parent | 405de8c986fd22c05f398036edac809e98149292 (diff) | |
download | otp-bcf62deb7b8534b00ce69c977466a009252ee8a5.tar.gz otp-bcf62deb7b8534b00ce69c977466a009252ee8a5.tar.bz2 otp-bcf62deb7b8534b00ce69c977466a009252ee8a5.zip |
OTP-8240 Improved GC performance after BIF/NIF call when a lot of heap
fragments was created. This will mainly benefit NIFs that return
large compound terms.
Diffstat (limited to 'erts/emulator/beam/erl_bif_info.c')
-rw-r--r-- | erts/emulator/beam/erl_bif_info.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/erts/emulator/beam/erl_bif_info.c b/erts/emulator/beam/erl_bif_info.c index 60216aa8e4..b2f81b6861 100644 --- a/erts/emulator/beam/erl_bif_info.c +++ b/erts/emulator/beam/erl_bif_info.c @@ -1,19 +1,19 @@ /* * %CopyrightBegin% - * - * Copyright Ericsson AB 1999-2009. All Rights Reserved. - * + * + * Copyright Ericsson AB 1999-2010. All Rights Reserved. + * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in * compliance with the License. You should have received a copy of the * Erlang Public License along with this software. If not, it can be * retrieved online at http://www.erlang.org/. - * + * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See * the License for the specific language governing rights and limitations * under the License. - * + * * %CopyrightEnd% */ @@ -3131,6 +3131,13 @@ BIF_RETTYPE erts_debug_get_internal_state_1(BIF_ALIST_1) else if (ERTS_IS_ATOM_STR("available_internal_state", BIF_ARG_1)) { BIF_RET(am_true); } + else if (ERTS_IS_ATOM_STR("force_heap_frags", BIF_ARG_1)) { +#ifdef FORCE_HEAP_FRAGS + BIF_RET(am_true); +#else + BIF_RET(am_false); +#endif + } } else if (is_tuple(BIF_ARG_1)) { Eterm* tp = tuple_val(BIF_ARG_1); |