mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* cont.c (cont_new): add debug message.
* cont.c (cont_restore_1): copy stack information from fiber. * cont.c (rb_fiber_s_new): fix to mark created fiber. * test/ruby/test_fiber.rb: add some tests around Thread and Fiber. * yarvcore.c (thread_free): fix to skip freeing stack if root fiber is available. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
ed88975237
commit
d80e7373cf
4 changed files with 48 additions and 3 deletions
|
@ -40,6 +40,23 @@ class TestFiber < Test::Unit::TestCase
|
|||
)
|
||||
end
|
||||
|
||||
def test_many_fibers_with_threads
|
||||
max = 1000
|
||||
@cnt = 0
|
||||
(1..100).map{|ti|
|
||||
Thread.new{
|
||||
max.times{|i|
|
||||
Fiber.new{
|
||||
@cnt += 1
|
||||
}.yield
|
||||
}
|
||||
}
|
||||
}.each{|t|
|
||||
t.join
|
||||
}
|
||||
assert_equal(:ok, :ok)
|
||||
end
|
||||
|
||||
def test_error
|
||||
assert_raise(ArgumentError){
|
||||
Fiber.new # Fiber without block
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue