aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_init.c
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2016-08-08 17:13:24 +0200
committerRickard Green <[email protected]>2016-08-29 16:26:25 +0200
commit0e04e76df2ea71e2e2e116afef04c497d84b1024 (patch)
treeebbe9789b9cb52561d885c49968d2c00d2ae52ce /erts/emulator/beam/erl_init.c
parent9d0638216d35ca0f21c1eea20f8daa3992ac4f71 (diff)
downloadotp-0e04e76df2ea71e2e2e116afef04c497d84b1024.tar.gz
otp-0e04e76df2ea71e2e2e116afef04c497d84b1024.tar.bz2
otp-0e04e76df2ea71e2e2e116afef04c497d84b1024.zip
Perform check_process_code while process is executing dirty
Diffstat (limited to 'erts/emulator/beam/erl_init.c')
-rw-r--r--erts/emulator/beam/erl_init.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_init.c b/erts/emulator/beam/erl_init.c
index a1b0a398da..dea4cc2992 100644
--- a/erts/emulator/beam/erl_init.c
+++ b/erts/emulator/beam/erl_init.c
@@ -2276,6 +2276,16 @@ erl_start(int argc, char **argv)
erts_proc_inc_refc(erts_literal_area_collector);
#endif
+#ifdef ERTS_DIRTY_SCHEDULERS
+ pid = erl_system_process_otp(otp_ring0_pid, "erts_dirty_process_code_checker");
+ erts_dirty_process_code_checker
+ = (Process *) erts_ptab_pix2intptr_ddrb(&erts_proc,
+ internal_pid_index(pid));
+ ASSERT(erts_dirty_process_code_checker
+ && erts_dirty_process_code_checker->common.id == pid);
+ erts_proc_inc_refc(erts_dirty_process_code_checker);
+#endif
+
}
#ifdef ERTS_SMP