Bug #11384 ยป 0001-autoload-always-wait-on-loading-thread.patch
| variable.c | ||
|---|---|---|
|
if (!RSTRING_LEN(file) || !*RSTRING_PTR(file)) {
|
||
|
rb_raise(rb_eArgError, "empty file name");
|
||
|
}
|
||
|
/*
|
||
|
* if somebody else is autoloading, we MUST wait for them, since
|
||
|
* rb_provide_feature can provide a feature before autoload_const_set
|
||
|
* completes. We must wait until autoload_const_set finishes in
|
||
|
* the other thread.
|
||
|
*/
|
||
|
if (ele->state && ele->state->thread != rb_thread_current()) {
|
||
|
return load;
|
||
|
}
|
||
|
loading = RSTRING_PTR(file);
|
||
|
safe = rb_safe_level();
|
||
|
rb_set_safe_level_force(0);
|
||
|
-
|
||