Unfortunately, simply requiring the files in a mutex won't work. Consider the following simplified example:
# person.rb class Person sleep 10 def say_hello puts "Hello" end end # mutexed autoloads def const_missing(klass) @mutex.synchronize do require autoload[klass] end end # usage Thread.new do # this will trigger person.rb, which will immediately make Person available, but # not add say_hello Person.say_hello end Thread.new do # Person is already created, so the const_missing will not fire (or autoload, etc.) # but say_hello is not yet defined Person.say_hello end Yehuda Katz Architect | Engine Yard (ph) 718.877.1325 On Sat, Jul 3, 2010 at 10:43 AM, rogerdpack <rogerpack2...@gmail.com> wrote: > I am under the impression that if config.threadsafe! was set that it > preloaded all files in the require paths, instead of using autoload. > > Suggestion: use autoload when threadsafe!, but with a wrapper, like > > autoload :Command, 'thin/command' > > becomes > > autoload :Command, 'wrappers/ > file_that_loads_command_but_in_a_mutex.rb' > > Then it might avoid loading unused dependencies in production, thus > saving on RAM and GC times. > Thoughts? > -r > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Core" group. > To post to this group, send email to rubyonrails-c...@googlegroups.com. > To unsubscribe from this group, send email to > rubyonrails-core+unsubscr...@googlegroups.com<rubyonrails-core%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/rubyonrails-core?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To post to this group, send email to rubyonrails-c...@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-core+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en.