Esempio n. 1
0
        private static void EnsureEnvironmentStarted(IEnvironmentLifecycle environment)
        {
            Task <EnvironmentStartResult> environmentStarting;

            lock (environmentStartTasks)
            {
                if (!environmentStartTasks.TryGetValue(environment.GetType(), out environmentStarting))
                {
                    lock (environmentStartTasks)
                    {
                        environmentStarting = new Task <EnvironmentStartResult>(() =>
                        {
                            try
                            {
                                environment.Start();
                                return(EnvironmentStartResult.Success);
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine("Failed starting {0}", environment.GetType().FullName);
                                Console.WriteLine(ex.ToString());
                                return(EnvironmentStartResult.Failed);
                            }
                        });

                        environmentStarting.Start();

                        environmentStartTasks.Add(environment.GetType(), environmentStarting);
                    }
                }
            }

            environmentStarting.Wait();
        }
Esempio n. 2
0
 public EnvironmentsBinPathWatch(string dllPath, IEnvironmentLifecycle environments) : this(dllPath, new List <IEnvironmentLifecycle> {
     environments
 })
 {
 }
Esempio n. 3
0
 public RemoteEnvironmentLifecycle(IEnvironmentLifecycle environment)
 {
     this.environment = environment;
 }