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: [email protected] [mailto:[email protected]] On Behalf Of Ivan Porto Carrero Sent: Friday, January 30, 2009 4:47 AM To: [email protected] 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 [email protected] http://rubyforge.org/mailman/listinfo/ironruby-core
