aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_bif_info.c
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2016-08-29 18:50:40 +0200
committerRickard Green <[email protected]>2016-08-29 18:50:40 +0200
commit81993991c8438aa31ec0e88f4f67637d43fa70c0 (patch)
treeb0f7c723ef79c0156bac5f74fcf77dc53aeb656d /erts/emulator/beam/erl_bif_info.c
parentca85801bf0fffa1bc8b19ca3acb7f69f2361627c (diff)
parentb815d568e2e43d96698dbb8de6b993d55c1b14a0 (diff)
downloadotp-81993991c8438aa31ec0e88f4f67637d43fa70c0.tar.gz
otp-81993991c8438aa31ec0e88f4f67637d43fa70c0.tar.bz2
otp-81993991c8438aa31ec0e88f4f67637d43fa70c0.zip
Merge branch 'maint'
* maint: Fix tracing of processes executing dirty Perform check_process_code while process is executing dirty Fix purge of code Reclaim literal area after purge has completed Separate literal area from code Conflicts: erts/emulator/beam/global.h
Diffstat (limited to 'erts/emulator/beam/erl_bif_info.c')
-rw-r--r--erts/emulator/beam/erl_bif_info.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_bif_info.c b/erts/emulator/beam/erl_bif_info.c
index cb7278696f..107c0c01d9 100644
--- a/erts/emulator/beam/erl_bif_info.c
+++ b/erts/emulator/beam/erl_bif_info.c
@@ -2883,6 +2883,27 @@ BIF_RETTYPE system_info_1(BIF_ALIST_1)
BIF_RET(AM_tag);
#endif
}
+ else if (ERTS_IS_ATOM_STR("check_process_code",BIF_ARG_1)) {
+ Eterm terms[3];
+ Sint length = 1;
+ Uint sz = 0;
+ Eterm *hp, res;
+ DECL_AM(direct_references);
+
+ terms[0] = AM_direct_references;
+#if !defined(ERTS_NEW_PURGE_STRATEGY)
+ {
+ DECL_AM(indirect_references);
+ terms[1] = AM_indirect_references;
+ terms[2] = am_copy_literals;
+ length = 3;
+ }
+#endif
+ erts_bld_list(NULL, &sz, length, terms);
+ hp = HAlloc(BIF_P, sz);
+ res = erts_bld_list(&hp, NULL, length, terms);
+ BIF_RET(res);
+ }
BIF_ERROR(BIF_P, BADARG);
}