diff options
author | kosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-11-28 08:30:51 +0000 |
---|---|---|
committer | kosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-11-28 08:30:51 +0000 |
commit | b8a1e36201d3965b3f7b87fe1fa1cf55e00ce045 (patch) | |
tree | 8d485a06dea6c22647555c684f0078896042dee2 /internal.h | |
parent | fc57f2bfdbc6c34289bd3143a7cd5e948ddded9b (diff) | |
download | ruby-b8a1e36201d3965b3f7b87fe1fa1cf55e00ce045.tar.gz |
* thread.c (struct rb_mutex_struct): add allow_trap field.
* internal.h (rb_mutex_allow_trap): added.
* thread.c (rb_mutex_lock, rb_mutex_unlock): check mutex->allow_trap.
* thread.c (mutex_sleep): remove trap check because it uses
rb_mutex_lock and rb_mutex_unlock internally.
* thread.c (rb_mutex_allow_trap): new helper function for the above.
* io.c (io_binwrite): mark fptr->write_lock as writable in trap.
* test/ruby/test_signal.rb (test_trap_puts): test for the above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'internal.h')
-rw-r--r-- | internal.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/internal.h b/internal.h index 0dd93d9860..86181f913a 100644 --- a/internal.h +++ b/internal.h @@ -278,6 +278,7 @@ VALUE rb_thread_shield_new(void); VALUE rb_thread_shield_wait(VALUE self); VALUE rb_thread_shield_release(VALUE self); VALUE rb_thread_shield_destroy(VALUE self); +void rb_mutex_allow_trap(VALUE self, int val); /* thread_pthread.c, thread_win32.c */ void Init_native_thread(void); |