diff options
author | Rickard Green <rickard@erlang.org> | 2013-05-05 19:47:05 +0200 |
---|---|---|
committer | Rickard Green <rickard@erlang.org> | 2013-05-17 11:00:48 +0200 |
commit | 5c039a1fb4979314912dc3af6626d8d7a1c73993 (patch) | |
tree | 91b082ab3f3234e52f59ff689ac772bb93069b85 /erts/emulator/test/process_SUITE.erl | |
parent | ad7231b1b5227f2ba9baa58c1c436ff9a95d2c67 (diff) | |
download | otp-5c039a1fb4979314912dc3af6626d8d7a1c73993.tar.gz otp-5c039a1fb4979314912dc3af6626d8d7a1c73993.tar.bz2 otp-5c039a1fb4979314912dc3af6626d8d7a1c73993.zip |
Introduce a better id allocation algorithm for PTabs
Diffstat (limited to 'erts/emulator/test/process_SUITE.erl')
-rw-r--r-- | erts/emulator/test/process_SUITE.erl | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/erts/emulator/test/process_SUITE.erl b/erts/emulator/test/process_SUITE.erl index 863cd2d654..72f3e8fe85 100644 --- a/erts/emulator/test/process_SUITE.erl +++ b/erts/emulator/test/process_SUITE.erl @@ -1494,6 +1494,7 @@ processes_bif_cleaner() -> spawn_initial_hangarounds(Cleaner) -> TabSz = erlang:system_info(process_limit), + erts_debug:set_internal_state(next_pid,TabSz), spawn_initial_hangarounds(Cleaner, TabSz, TabSz*2, @@ -1538,14 +1539,21 @@ hangaround(Cleaner, Type) -> spawn_initial_hangarounds(_Cleaner, NP, Max, Len, HAs) when NP > Max -> {Len, HAs}; spawn_initial_hangarounds(Cleaner, NP, Max, Len, HAs) -> - erts_debug:set_internal_state(next_pid,NP), + Skip = 30, HA1 = spawn_opt(?MODULE, hangaround, [Cleaner, initial_hangaround], [{priority, low}]), HA2 = spawn_opt(?MODULE, hangaround, [Cleaner, initial_hangaround], [{priority, normal}]), HA3 = spawn_opt(?MODULE, hangaround, [Cleaner, initial_hangaround], [{priority, high}]), - spawn_initial_hangarounds(Cleaner, NP+30, Max, Len+3, [HA1,HA2,HA3|HAs]). + spawn_drop(Skip), + spawn_initial_hangarounds(Cleaner, NP+Skip, Max, Len+3, [HA1,HA2,HA3|HAs]). + +spawn_drop(N) when N =< 0 -> + ok; +spawn_drop(N) -> + spawn(fun () -> ok end), + spawn_drop(N-1). do_processes(WantReds) -> erts_debug:set_internal_state(reds_left, WantReds), |