I am writing a library that deals with class variables. But until
recently all rails requests were in their own process. Now that
threading has been introduced I'm not sure how this effect class
variables, so I was hoping someone can shed some light on this.
If I am threading rails and do something like:
class ApplicationController < ActionController::Base
around_filter :setting_class_var
private
def setting_class_var
User.some_class_var = self
yield
User.some_class_var = nil
end
end
My question is will this work properly while threading? I am unsure if
rails does any kind of mutual exclusion. Thanks!
You will probably need to make those variables threadlocal. Here's
the first thread I found on Ruby threadlocal variables, it doesn't
look like there's a native way, but it doesn't look hard: