diff options
author | Rickard Green <[email protected]> | 2015-05-08 17:47:27 +0200 |
---|---|---|
committer | Rickard Green <[email protected]> | 2015-05-08 17:47:27 +0200 |
commit | cc03bb892c4ecf2344234d4f7b1b49133d782f41 (patch) | |
tree | a68976350b73526dfe37fe4ad4384226c1652782 /erts/emulator/beam/bif.c | |
parent | 207346e0543143bf1aea11a93bcb24de170fc0ac (diff) | |
parent | 9c78f149517dc02457d4c59e90bc9b03d411e28c (diff) | |
download | otp-cc03bb892c4ecf2344234d4f7b1b49133d782f41.tar.gz otp-cc03bb892c4ecf2344234d4f7b1b49133d782f41.tar.bz2 otp-cc03bb892c4ecf2344234d4f7b1b49133d782f41.zip |
Merge branch 'rickard/timer-optimization/OTP-12650'
* rickard/timer-optimization/OTP-12650:
Optimized timer implementation
Reusable red-black tree implementation
Conflicts:
erts/emulator/beam/erl_bif_timer.c
Diffstat (limited to 'erts/emulator/beam/bif.c')
-rw-r--r-- | erts/emulator/beam/bif.c | 25 |
1 files changed, 5 insertions, 20 deletions
diff --git a/erts/emulator/beam/bif.c b/erts/emulator/beam/bif.c index 4f2958c664..2b782f4484 100644 --- a/erts/emulator/beam/bif.c +++ b/erts/emulator/beam/bif.c @@ -44,6 +44,7 @@ #include "erl_bits.h" #include "erl_bif_unique.h" +Export *erts_await_result; static Export* flush_monitor_messages_trap = NULL; static Export* set_cpu_topology_trap = NULL; static Export* await_proc_exit_trap = NULL; @@ -831,26 +832,6 @@ BIF_RETTYPE monitor_2(BIF_ALIST_2) return ret; } -BIF_RETTYPE erts_internal_monitor_process_2(BIF_ALIST_2) -{ - if (is_not_internal_pid(BIF_ARG_1)) { - if (is_external_pid(BIF_ARG_1) - && (external_pid_dist_entry(BIF_ARG_1) - == erts_this_dist_entry)) { - BIF_RET(am_false); - } - goto badarg; - } - - if (is_not_internal_ref(BIF_ARG_2)) - goto badarg; - - BIF_RET(local_pid_monitor(BIF_P, BIF_ARG_1, BIF_ARG_2, 1)); - -badarg: - BIF_ERROR(BIF_P, BADARG); -} - /**********************************************************************/ /* this is a combination of the spawn and link BIFs */ @@ -4904,6 +4885,10 @@ void erts_init_bif(void) #endif , &bif_return_trap); + erts_await_result = erts_export_put(am_erts_internal, + am_await_result, + 1); + erts_init_trap_export(&dsend_continue_trap_export, am_erts_internal, am_dsend_continue_trap, 1, dsend_continue_trap_1); |