diff options
| author | take-cheeze <[email protected]> | 2018-06-22 11:41:12 +0900 |
|---|---|---|
| committer | take-cheeze <[email protected]> | 2018-06-22 11:41:12 +0900 |
| commit | 48ba7c7bb0ccf146921e585c6ce2f5a0e1afff0f (patch) | |
| tree | 864549821f7586302e236e2fea347a9a2d2acb86 | |
| parent | 36714043912372c11cf361fb2a37130be6b853d7 (diff) | |
| download | mruby-48ba7c7bb0ccf146921e585c6ce2f5a0e1afff0f.tar.gz mruby-48ba7c7bb0ccf146921e585c6ce2f5a0e1afff0f.zip | |
Increase sleep duration exponentially instead of `Thread.pass`.
| -rwxr-xr-x | minirake | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -562,8 +562,9 @@ class RakeApp exit 1 end - def wait_process - Thread.pass + def wait_process(count = 0) + dur = [0.0001 * (10 ** count), 1].min + sleep dur exited = [] $rake_fiber_table.each do |pid, v| @@ -581,10 +582,12 @@ class RakeApp raise "Command Failed: [#{ent[:command]}]" end - wait_process while $rake_fiber_table.size >= $rake_jobs + fail 'task scheduling bug!' if $rake_fiber_table.size >= $rake_jobs ent[:fiber].transfer end + + wait_process(count + 1) if !$rake_fiber_table.empty? && exited.empty? end end |
