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! -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
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: http://www.ruby-forum.com/topic/160322 On Oct 13, 2:53 pm, Ben Johnson <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> 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! > -- > Posted viahttp://www.ruby-forum.com/.--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
> 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!Yeah you''ll want to use instance variables and avoid anything shared (like class variables) unless you mean it to be shared. -=R -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---