private void InitializeMethodTableNoLock() {
if (!MethodInitializationNeeded) return;
InitializeDependencies();
_methods = new Dictionary<string, RubyMemberInfo>();
_methodsState = MemberTableState.Initializing;
try {
if (_methodsInitializer != null) {
Utils.Log(_name ?? "<anonymous>", "MT_INIT");
// TODO: use lock-free operations in initializers?
_methodsInitializer(this);
}
} finally {
_methodsInitializer = null;
_methodsState = MemberTableState.Initialized;
}
}