Unverified Commit 28c50b3e authored by Yukihiro "Matz" Matsumoto's avatar Yukihiro "Matz" Matsumoto Committed by GitHub

Merge pull request #4101 from take-cheeze/fix_4085

Avoid root fiber initialization for CRuby.
parents 02adae16 901dccb2
...@@ -6,12 +6,10 @@ ...@@ -6,12 +6,10 @@
require 'getoptlong' require 'getoptlong'
require 'fileutils' require 'fileutils'
require 'fiber'
$rake_fiber_table = {} $rake_fiber_table = {}
$rake_jobs = 1 $rake_jobs = 1
$rake_failed = [] $rake_failed = []
$rake_root_fiber = Fiber.current
class String class String
def ext(newext='') def ext(newext='')
...@@ -111,10 +109,14 @@ module MiniRake ...@@ -111,10 +109,14 @@ module MiniRake
if needed? if needed?
@running = true @running = true
if $rake_root_fiber
return Fiber.new do return Fiber.new do
self.execute self.execute
$rake_root_fiber.transfer $rake_root_fiber.transfer
end end
else
self.execute
end
end end
@done = true @done = true
...@@ -308,7 +310,7 @@ module MiniRake ...@@ -308,7 +310,7 @@ module MiniRake
def sh(cmd) def sh(cmd)
puts cmd if $verbose puts cmd if $verbose
if $rake_jobs == 1 || Fiber.current == $rake_root_fiber if !$rake_root_fiber || Fiber.current == $rake_root_fiber
system(cmd) or fail "Command Failed: [#{cmd}]" system(cmd) or fail "Command Failed: [#{cmd}]"
return return
end end
...@@ -480,6 +482,12 @@ class RakeApp ...@@ -480,6 +482,12 @@ class RakeApp
# Run the +rake+ application. # Run the +rake+ application.
def run def run
handle_options handle_options
if $rake_root_fiber
require 'fiber'
$rake_root_fiber = Fiber.current
end
begin begin
here = Dir.pwd here = Dir.pwd
while ! have_rakefile while ! have_rakefile
...@@ -590,7 +598,7 @@ class RakeApp ...@@ -590,7 +598,7 @@ class RakeApp
wait_process(count + 1) if !$rake_fiber_table.empty? && exited.empty? wait_process(count + 1) if !$rake_fiber_table.empty? && exited.empty?
end end
end end
if __FILE__ == $0 then if __FILE__ == $0 then
RakeApp.new.run RakeApp.new.run
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment