aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/bif_instrs.tab
diff options
context:
space:
mode:
authorJohn Högberg <[email protected]>2018-04-24 16:45:18 +0200
committerGitHub <[email protected]>2018-04-24 16:45:18 +0200
commite2a760e691d1b08a2396233fb50cefd98199ba12 (patch)
tree3b7d1f2d3ad7b8934dbac263704bc95fc7a7f1e7 /erts/emulator/beam/bif_instrs.tab
parent685cd438232282ee0fa790517e7fe193110ff265 (diff)
parent573a5abd9d6b1668b49376b489b187780c7125c7 (diff)
downloadotp-e2a760e691d1b08a2396233fb50cefd98199ba12.tar.gz
otp-e2a760e691d1b08a2396233fb50cefd98199ba12.tar.bz2
otp-e2a760e691d1b08a2396233fb50cefd98199ba12.zip
Merge pull request #1790 from jhogberg/john/erts/more-alloc-info/OTP-14961
Improve memory instrumentation OTP-15024 OTP-14961
Diffstat (limited to 'erts/emulator/beam/bif_instrs.tab')
-rw-r--r--erts/emulator/beam/bif_instrs.tab8
1 files changed, 8 insertions, 0 deletions
diff --git a/erts/emulator/beam/bif_instrs.tab b/erts/emulator/beam/bif_instrs.tab
index 0932b8b985..0f074280db 100644
--- a/erts/emulator/beam/bif_instrs.tab
+++ b/erts/emulator/beam/bif_instrs.tab
@@ -432,9 +432,17 @@ nif_bif.call_nif() {
live_hf_end = c_p->mbuf;
ERTS_CHK_MBUF_SZ(c_p);
erts_pre_nif(&env, c_p, (struct erl_module_nif*)I[2], NULL);
+
+ ASSERT((c_p->scheduler_data)->current_nif == NULL);
+ (c_p->scheduler_data)->current_nif = &env;
+
nif_bif_result = (*fp)(&env, bif_nif_arity, reg);
if (env.exception_thrown)
nif_bif_result = THE_NON_VALUE;
+
+ ASSERT((c_p->scheduler_data)->current_nif == &env);
+ (c_p->scheduler_data)->current_nif = NULL;
+
erts_post_nif(&env);
ERTS_CHK_MBUF_SZ(c_p);