diff options
Diffstat (limited to 'main/src')
3 files changed, 9 insertions, 19 deletions
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Assemblies/SystemAssemblyService.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Assemblies/SystemAssemblyService.cs index d8dbf4ab10..ca8bec51a6 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Assemblies/SystemAssemblyService.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Assemblies/SystemAssemblyService.cs @@ -55,11 +55,6 @@ namespace MonoDevelop.Core.Assemblies internal void Initialize () { - Initialize (false); - } - - internal void Initialize (bool synchronous) - { CreateFrameworks (); runtimes = new List<TargetRuntime> (); foreach (ITargetRuntimeFactory factory in AddinManager.GetExtensionObjects ("/MonoDevelop/Core/Runtimes", typeof(ITargetRuntimeFactory))) { @@ -78,10 +73,7 @@ namespace MonoDevelop.Core.Assemblies if (CurrentRuntime == null) LoggingService.LogFatalError ("Could not create runtime info for current runtime"); - if (synchronous) - CurrentRuntime.EnsureInitialized (); - else - CurrentRuntime.StartInitialization (); + CurrentRuntime.StartInitialization (); LoadUserAssemblyContext (); userAssemblyContext.Changed += delegate { @@ -89,6 +81,12 @@ namespace MonoDevelop.Core.Assemblies }; } + void InitializeRuntime (TargetRuntime runtime) + { + runtime.Initialized += HandleRuntimeInitialized; + runtime.StartInitialization (); + } + void HandleRuntimeInitialized (object sender, EventArgs e) { var runtime = (TargetRuntime) sender; diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core/Runtime.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core/Runtime.cs index 9d67f10a66..5cee6fce42 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core/Runtime.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core/Runtime.cs @@ -55,11 +55,6 @@ namespace MonoDevelop.Core public static void Initialize (bool updateAddinRegistry) { - Initialize (updateAddinRegistry, false); - } - - public static void Initialize (bool updateAddinRegistry, bool synchronousRuntimeInitialization) - { if (initialized) return; Counters.RuntimeInitialization.BeginTiming (); @@ -119,7 +114,7 @@ namespace MonoDevelop.Core Counters.RuntimeInitialization.Trace ("Initializing Assembly Service"); systemAssemblyService = new SystemAssemblyService (); - systemAssemblyService.Initialize (synchronousRuntimeInitialization); + systemAssemblyService.Initialize (); initialized = true; diff --git a/main/src/tools/mdtool/src/mdtool.cs b/main/src/tools/mdtool/src/mdtool.cs index 0ce1031224..fece250a66 100644 --- a/main/src/tools/mdtool/src/mdtool.cs +++ b/main/src/tools/mdtool/src/mdtool.cs @@ -40,10 +40,7 @@ public class MonoDevelopProcessHost public static int Main (string[] args) { try { - // If we are running mdtool setup reg-build we *must* ensure we do all our initialization synchronously. Otherwise we can end up - // in a situation where some addins are trying to use Mono.Addins while we are rebuilding the registry. As you can imagine, this - // causes all kinds of strange and unusual crashes and errors. - Runtime.Initialize (true, true); + Runtime.Initialize (false); Runtime.SetProcessName ("mdtool"); if (args.Length == 0 || args [0] == "--help") { |