mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* variable.c (classname): the name of class that has
non class id should not be nil. This bug was introduced in r36577. * test/thread/test_cv.rb: test for change. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42867 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
0a4801e768
commit
113b1c76fc
3 changed files with 18 additions and 2 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
Sat Sep 7 13:49:40 2013 Kazuki Tsujimoto <kazuki@callcc.net>
|
||||||
|
|
||||||
|
* variable.c (classname): the name of class that has
|
||||||
|
non class id should not be nil. This bug was introduced
|
||||||
|
in r36577.
|
||||||
|
|
||||||
|
* test/thread/test_cv.rb: test for change.
|
||||||
|
|
||||||
Sat Sep 7 13:29:22 2013 Kazuki Tsujimoto <kazuki@callcc.net>
|
Sat Sep 7 13:29:22 2013 Kazuki Tsujimoto <kazuki@callcc.net>
|
||||||
|
|
||||||
* lib/find.rb (Find.find): respect the encodings of arguments.
|
* lib/find.rb (Find.find): respect the encodings of arguments.
|
||||||
|
|
|
@ -82,20 +82,23 @@ class TestConditionVariable < Test::Unit::TestCase
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_condvar_wait_deadlock
|
def test_condvar_wait_deadlock
|
||||||
assert_in_out_err([], <<-INPUT, ["No live threads left. Deadlock?"], [])
|
assert_in_out_err([], <<-INPUT, ["fatal", "No live threads left. Deadlock?"], [])
|
||||||
require "thread"
|
require "thread"
|
||||||
|
|
||||||
mutex = Mutex.new
|
mutex = Mutex.new
|
||||||
cv = ConditionVariable.new
|
cv = ConditionVariable.new
|
||||||
|
|
||||||
|
klass = nil
|
||||||
mesg = nil
|
mesg = nil
|
||||||
begin
|
begin
|
||||||
mutex.lock
|
mutex.lock
|
||||||
cv.wait mutex
|
cv.wait mutex
|
||||||
mutex.unlock
|
mutex.unlock
|
||||||
rescue Exception => e
|
rescue Exception => e
|
||||||
|
klass = e.class
|
||||||
mesg = e.message
|
mesg = e.message
|
||||||
end
|
end
|
||||||
|
puts klass
|
||||||
print mesg
|
print mesg
|
||||||
INPUT
|
INPUT
|
||||||
end
|
end
|
||||||
|
|
|
@ -177,9 +177,14 @@ classname(VALUE klass, int *permanent)
|
||||||
path = find_class_path(klass, (ID)0);
|
path = find_class_path(klass, (ID)0);
|
||||||
}
|
}
|
||||||
if (NIL_P(path)) {
|
if (NIL_P(path)) {
|
||||||
if (!cid || !st_lookup(RCLASS_IV_TBL(klass), (st_data_t)tmp_classpath, &n)) {
|
if (!cid) {
|
||||||
return Qnil;
|
return Qnil;
|
||||||
}
|
}
|
||||||
|
if (!st_lookup(RCLASS_IV_TBL(klass), (st_data_t)tmp_classpath, &n)) {
|
||||||
|
path = rb_str_dup(rb_id2str(cid));
|
||||||
|
OBJ_FREEZE(path);
|
||||||
|
return path;
|
||||||
|
}
|
||||||
*permanent = 0;
|
*permanent = 0;
|
||||||
path = (VALUE)n;
|
path = (VALUE)n;
|
||||||
return path;
|
return path;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue