Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/main/src
diff options
context:
space:
mode:
authorMichael Hutchinson <m.j.hutchinson@gmail.com>2013-08-24 01:18:41 +0400
committerMichael Hutchinson <m.j.hutchinson@gmail.com>2013-08-24 01:55:33 +0400
commit812408e564c6ef805566394ef864e95cf47baca7 (patch)
tree24c2a784610c89463e5cae08ce778963b28d3ab9 /main/src
parenta5107b64789115bf1e7c59a92333af1bd7e65348 (diff)
Revert "[Core] Get rid of some of our asynchronous initialisation when running mdtool"
This reverts commit 6ac5b1c5e34c7a9346c120969ca846d949bfab3b. It slows down all mdtool invocations by several seconds to work around issues in the setup tool.
Diffstat (limited to 'main/src')
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core.Assemblies/SystemAssemblyService.cs16
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core/Runtime.cs7
-rw-r--r--main/src/tools/mdtool/src/mdtool.cs5
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") {