diff options
author | Rickard Green <[email protected]> | 2016-08-29 18:50:40 +0200 |
---|---|---|
committer | Rickard Green <[email protected]> | 2016-08-29 18:50:40 +0200 |
commit | 81993991c8438aa31ec0e88f4f67637d43fa70c0 (patch) | |
tree | b0f7c723ef79c0156bac5f74fcf77dc53aeb656d /erts/emulator/beam/erl_bif_info.c | |
parent | ca85801bf0fffa1bc8b19ca3acb7f69f2361627c (diff) | |
parent | b815d568e2e43d96698dbb8de6b993d55c1b14a0 (diff) | |
download | otp-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.c | 21 |
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); } |