* 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
This commit is contained in:
glass 2013-01-09 13:14:09 +00:00
Родитель 94b4e7c783
Коммит 62efc6f305
2 изменённых файлов: 7 добавлений и 1 удалений

Просмотреть файл

@ -1,3 +1,9 @@
Wed Jan 9 22:07:42 2013 Masaki Matsushita <glass.saga@gmail.com>
* 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]
Wed Jan 9 21:43:32 2013 Masaki Matsushita <glass.saga@gmail.com>
* load.c (load_lock): revert r38744. it should acquire new thread

2
load.c
Просмотреть файл

@ -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;