Bug #8374
Updated by nobu (Nobuyoshi Nakada) over 11 years ago
=begin Requiring a gem with a C extension seems to be not threadsafe. Any one of the require lines below will frequently (but not always) cause an error like the following: /usr/local/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': cannot load such file -- sqlite3 (LoadError) from /usr/local/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require' from thread.rb:7:in `block (2 levels) in <main>' Using one thread avoids the problem. __BEGIN__ ths = (1..2).map do Thread.new do # require 'msgpack' # require 'yajl' # require 'sequel' # require 'nio4r' require 'sqlite3' end end end ths.each {|th| th.join} =end