Bug #14247 » Thread-KeyError.diff
test/ruby/test_thread.rb | ||
---|---|---|
assert_equal(3, t.fetch("qux") {x = 3})
|
||
assert_equal(3, x)
|
||
assert_raise(KeyError) {t.fetch(:qux)}
|
||
e = assert_raise(KeyError) {t.fetch(:qux)}
|
||
assert_equal(:qux, e.key)
|
||
assert_equal(t, e.receiver)
|
||
ensure
|
||
t.kill if t
|
||
end
|
thread.c | ||
---|---|---|
return rb_yield(key);
|
||
}
|
||
else if (argc == 1) {
|
||
rb_raise(rb_eKeyError, "key not found: %"PRIsVALUE, key);
|
||
rb_key_err_raise(rb_sprintf("key not found: \"%"PRIsVALUE"\"", key), self, key);
|
||
}
|
||
else {
|
||
return argv[1];
|