diff options
author | Steve Vinoski <[email protected]> | 2015-12-23 21:09:19 -0500 |
---|---|---|
committer | Rickard Green <[email protected]> | 2016-05-31 15:13:50 +0200 |
commit | 60557173f8a7bd0d4deafdb2b3e066899c586f56 (patch) | |
tree | 280984f50391176714f4ed1b9eb19cdabd3369b3 /erts/emulator/beam/erl_process.c | |
parent | f0510a55fdc2591ea71107f77e36d6fc7b001874 (diff) | |
download | otp-60557173f8a7bd0d4deafdb2b3e066899c586f56.tar.gz otp-60557173f8a7bd0d4deafdb2b3e066899c586f56.tar.bz2 otp-60557173f8a7bd0d4deafdb2b3e066899c586f56.zip |
Add dirty_process_main function
Dirty schedulers only execute NIFs, so having them execute the full
process_main function isn't necessary. Add dirty_process_main for
dirty schedulers to execute instead.
Add erts_pre_dirty_nif(), called when preparing to execute a dirty
nif.
Add more dirty NIF tests to verify that activities requiring the
process main lock can succeed when the process is executing a dirty
NIF.
Diffstat (limited to 'erts/emulator/beam/erl_process.c')
-rw-r--r-- | erts/emulator/beam/erl_process.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c index f8cbe60e76..e245c9e6bb 100644 --- a/erts/emulator/beam/erl_process.c +++ b/erts/emulator/beam/erl_process.c @@ -8197,7 +8197,7 @@ sched_dirty_cpu_thread_func(void *vesdp) #endif erts_thread_init_float(); - process_main(); + dirty_process_main(); /* No schedulers should *ever* terminate */ erts_exit(ERTS_ABORT_EXIT, "Dirty CPU scheduler thread number %beu terminated\n", @@ -8242,7 +8242,7 @@ sched_dirty_io_thread_func(void *vesdp) #endif erts_thread_init_float(); - process_main(); + dirty_process_main(); /* No schedulers should *ever* terminate */ erts_exit(ERTS_ABORT_EXIT, "Dirty I/O scheduler thread number %beu terminated\n", |