Bug #14247 » 0001-Fix-KeyError-key-receiver-of-Thread-fetch.patch
| 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];
|
||
- « Previous
- 1
- 2
- Next »