diff options
author | glass <glass@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-01-09 13:14:09 +0000 |
---|---|---|
committer | glass <glass@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-01-09 13:14:09 +0000 |
commit | 62efc6f305045d83eab8493bc3b58e9bd3504159 (patch) | |
tree | 6be2b74217faa4392a83b2179265c6c5efc4aed7 /load.c | |
parent | 94b4e7c78311679859d5bd6505382885cc7cb169 (diff) | |
download | ruby-62efc6f305045d83eab8493bc3b58e9bd3504159.tar.gz |
* load.c (load_lock): if thread shield is destroyed and there is no
waiting thread, insert new thread shield into load_table.
[Bug #7530] [ruby-core:50645]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'load.c')
-rw-r--r-- | load.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -669,7 +669,7 @@ load_lock(const char *ftptr) switch (rb_thread_shield_wait((VALUE)data)) { case Qfalse: data = (st_data_t)ftptr; - st_delete(loading_tbl, &data, 0); + st_insert(loading_tbl, data, (st_data_t)rb_thread_shield_new()); return 0; case Qnil: return 0; |