Bug #10892 » 0001-load.c-unlock-the-new-shield.patch
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;
|
- « Previous
- 1
- 2
- Next »