Project

General

Profile

Bug #10892 » 0001-load.c-unlock-the-new-shield.patch

thedarkone (Vit Z), 07/31/2015 04:53 AM

View differences:

load.c
switch (rb_thread_shield_wait((VALUE)data)) {
case Qfalse:
data = (st_data_t)ftptr;
st_insert(loading_tbl, data, (st_data_t)rb_thread_shield_new());
VALUE new_shield = rb_thread_shield_new();
/* rb_thread_shield_new() automatically pre-locks the new shield, since this branch indicates
the failure to acquire the lock, the newly installed shield shouldn't be locked */
rb_thread_shield_release(new_shield);
st_insert(loading_tbl, data, (st_data_t)new_shield);
return 0;
case Qnil:
return 0;
(2-2/2)