diff options
author | Rickard Green <[email protected]> | 2017-01-17 12:39:55 +0100 |
---|---|---|
committer | Rickard Green <[email protected]> | 2017-01-17 12:39:55 +0100 |
commit | 8e77d78810c2b77a81e261234b351d30e374d629 (patch) | |
tree | db5c8dc37898b5c8e8bcd9d91b1c1e35ca3ff4dc /erts/preloaded/src/erlang.erl | |
parent | 894cceaa2191bbb59474c1a1bfc657493c5ea79e (diff) | |
parent | 0d20adbfbb0918c8d6bfc629e9e4ff89d2ef1a64 (diff) | |
download | otp-8e77d78810c2b77a81e261234b351d30e374d629.tar.gz otp-8e77d78810c2b77a81e261234b351d30e374d629.tar.bz2 otp-8e77d78810c2b77a81e261234b351d30e374d629.zip |
Merge branch 'rickard/ds-features-20'
OTP-14152
* rickard/ds-features-20:
Remove experimental disclaimer on dirty schedulers
Scheduler wall time support for dirty schedulers
Always return info from system_info(dirty_[cpu|io]_schedulers*)
Improve etp-commands
Switch between scheduler types when multi-scheduling is blocked
Perform potentially long GC on dirty schedulers if available
Return and exception trace for nif-export scheduled BIFs
Optimize handling of BIF errors
Support for dirty BIFs
Reduction counting on non-tail return
Diffstat (limited to 'erts/preloaded/src/erlang.erl')
-rw-r--r-- | erts/preloaded/src/erlang.erl | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/erts/preloaded/src/erlang.erl b/erts/preloaded/src/erlang.erl index 6ca0a4c160..86ebb4dd4b 100644 --- a/erts/preloaded/src/erlang.erl +++ b/erts/preloaded/src/erlang.erl @@ -886,7 +886,7 @@ function_exported(_Module, _Function, _Arity) -> %% garbage_collect/0 -spec garbage_collect() -> true. garbage_collect() -> - erlang:nif_error(undefined). + erts_internal:garbage_collect(major). %% garbage_collect/1 -spec garbage_collect(Pid) -> GCResult when @@ -2333,6 +2333,10 @@ spawn_opt(_Tuple) -> SchedulerId :: pos_integer(), ActiveTime :: non_neg_integer(), TotalTime :: non_neg_integer(); + (scheduler_wall_time_all) -> [{SchedulerId, ActiveTime, TotalTime}] | undefined when + SchedulerId :: pos_integer(), + ActiveTime :: non_neg_integer(), + TotalTime :: non_neg_integer(); (total_active_tasks) -> ActiveTasks when ActiveTasks :: non_neg_integer(); (total_run_queue_lengths) -> TotalRunQueueLenghts when @@ -4014,6 +4018,7 @@ sched_wall_time(Ref, N, undefined) -> sched_wall_time(Ref, N, Acc) -> receive {Ref, undefined} -> sched_wall_time(Ref, N-1, undefined); + {Ref, SWTL} when erlang:is_list(SWTL) -> sched_wall_time(Ref, N-1, Acc ++ SWTL); {Ref, SWT} -> sched_wall_time(Ref, N-1, [SWT|Acc]) end. |