1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

thread.c: Mutex#synchronize no block params

* thread.c (rb_mutex_synchronize_m): yield no block params.  patch by
  splattael (Peter Suschlik) in [ruby-core:53773] [Bug #8097].
  fix GH-266.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2013-03-29 13:09:52 +00:00
parent 2418b20897
commit 99155e20a0
3 changed files with 12 additions and 1 deletions

View file

@ -1,3 +1,9 @@
Fri Mar 29 22:09:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* thread.c (rb_mutex_synchronize_m): yield no block params. patch by
splattael (Peter Suschlik) in [ruby-core:53773] [Bug #8097].
fix GH-266.
Fri Mar 29 16:51:39 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* io.c (argf_next_argv): set init flag if succeeded to forward, after

View file

@ -120,6 +120,11 @@ class TestThread < Test::Unit::TestCase
assert_equal(max * max * max, r)
end
def test_mutex_synchronize_yields_no_block_params
bug8097 = '[ruby-core:53424] [Bug #8097]'
assert_empty(Mutex.new.synchronize {|*params| break params}, bug8097)
end
def test_local_barrier
dir = File.dirname(__FILE__)
lbtest = File.join(dir, "lbtest.rb")

View file

@ -4567,7 +4567,7 @@ rb_mutex_synchronize_m(VALUE self, VALUE args)
rb_raise(rb_eThreadError, "must be called with a block");
}
return rb_mutex_synchronize(self, rb_yield, Qnil);
return rb_mutex_synchronize(self, rb_yield, Qundef);
}
void rb_mutex_allow_trap(VALUE self, int val)