diff options
| author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-07-15 14:50:49 +0000 |
|---|---|---|
| committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-07-15 14:50:49 +0000 |
| commit | 4755f0d2e7216acdab91826b4a2272016bfde7c6 (patch) | |
| tree | cd446dd300d34a983c0400f1580180445a8caf98 /eval.c | |
| parent | 9d211e580c46ea755dd980a0e01045e90261ae09 (diff) | |
| download | ruby-4755f0d2e7216acdab91826b4a2272016bfde7c6.tar.gz ruby-4755f0d2e7216acdab91826b4a2272016bfde7c6.tar.xz ruby-4755f0d2e7216acdab91826b4a2272016bfde7c6.zip | |
* eval.c (rb_require_safe): wait for another thread requiring the same
feature. fixed: [ruby-core:08229]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@10539 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
| -rw-r--r-- | eval.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -7137,12 +7137,11 @@ rb_require_safe(fname, safe) ruby_safe_level = safe; found = search_required(fname, &feature, &path); if (found) { - if (!path || load_wait(RSTRING(path)->ptr)) { + if (!path || load_wait(RSTRING(feature)->ptr)) { result = Qfalse; } else { ruby_safe_level = 0; - rb_provide_feature(feature); switch (found) { case 'r': /* loading ruby library should be serialized. */ @@ -7165,6 +7164,7 @@ rb_require_safe(fname, safe) rb_ary_push(ruby_dln_librefs, LONG2NUM(handle)); break; } + rb_provide_feature(feature); result = Qtrue; } } |
