It's part of Tomas' thread-safety work. To enumerate the methods safely, you need to ensure that another thread isn't modifying the method list.
From: ironruby-core-boun...@rubyforge.org [mailto:ironruby-core-boun...@rubyforge.org] On Behalf Of Ivan Porto Carrero Sent: Friday, January 30, 2009 4:47 AM To: ironruby-core@rubyforge.org Subject: [Ironruby-core] DLR hosting it will show that so far I've been working with instead of on IronRuby :) And then I've been focussed on using the Ruby language and .NET from Ruby instead of using C# to host Ironruby. I'm using a debug build from IronRuby and the weird thing is that I have to add ClassHierarchyLocker. var controllerRubyClass = ScriptRuntime.Globals.GetVariable<RubyModule>(controllerRubyClassName); string controllerRubyMethodName = null; using (rubyContext.ClassHierarchyLocker()) { controllerRubyClass.EnumerateMethods((_, symbolId, __) => { if (String.Equals(symbolId, actionName, StringComparison.OrdinalIgnoreCase)) { controllerRubyMethodName = symbolId; return true; } return false; }); } The question I have here is: Why do I need the ClassHierarchyLocker ? Cheers Ivan
_______________________________________________ Ironruby-core mailing list Ironruby-core@rubyforge.org http://rubyforge.org/mailman/listinfo/ironruby-core