cont.c: fiber local svar
* cont.c (cont_restore_thread): svar should be separate per fibers. [ruby-core:51331] [Bug #7678] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
3df94d7b5d
commit
29707c1d73
@ -1,3 +1,8 @@
|
|||||||
|
Wed Jan 30 13:17:53 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* cont.c (cont_restore_thread): svar should be separate per fibers.
|
||||||
|
[ruby-core:51331] [Bug #7678]
|
||||||
|
|
||||||
Wed Jan 30 07:15:04 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
|
Wed Jan 30 07:15:04 2013 Marc-Andre Lafortune <ruby-core@marc-andre.ca>
|
||||||
|
|
||||||
* re.c (reg_operand): Simplify and reuse error handling [Bug #7539]
|
* re.c (reg_operand): Simplify and reuse error handling [Bug #7539]
|
||||||
|
2
cont.c
2
cont.c
@ -512,6 +512,8 @@ cont_restore_thread(rb_context_t *cont)
|
|||||||
th->protect_tag = sth->protect_tag;
|
th->protect_tag = sth->protect_tag;
|
||||||
th->errinfo = sth->errinfo;
|
th->errinfo = sth->errinfo;
|
||||||
th->first_proc = sth->first_proc;
|
th->first_proc = sth->first_proc;
|
||||||
|
th->root_lep = sth->root_lep;
|
||||||
|
th->root_svar = sth->root_svar;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if FIBER_USE_NATIVE
|
#if FIBER_USE_NATIVE
|
||||||
|
@ -317,5 +317,29 @@ class TestFiber < Test::Unit::TestCase
|
|||||||
size_large = invoke_rec script, vm_stack_size, 1024 * 1024 * 10
|
size_large = invoke_rec script, vm_stack_size, 1024 * 1024 * 10
|
||||||
assert_operator(size_default, :<=, size_large)
|
assert_operator(size_default, :<=, size_large)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_separate_lastmatch
|
||||||
|
bug7678 = '[ruby-core:51331]'
|
||||||
|
/a/ =~ "a"
|
||||||
|
m1 = $~
|
||||||
|
m2 = nil
|
||||||
|
Fiber.new do
|
||||||
|
/b/ =~ "b"
|
||||||
|
m2 = $~
|
||||||
|
end.resume
|
||||||
|
assert_equal("b", m2[0])
|
||||||
|
assert_equal(m1, $~, bug7678)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_separate_lastline
|
||||||
|
bug7678 = '[ruby-core:51331]'
|
||||||
|
$_ = s1 = "outer"
|
||||||
|
s2 = nil
|
||||||
|
Fiber.new do
|
||||||
|
s2 = "inner"
|
||||||
|
end.resume
|
||||||
|
assert_equal("inner", s2)
|
||||||
|
assert_equal(s1, $_, bug7678)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user