internal static void Start() { try { LayoutManager.InitOpengl(); new Thread((ThreadStart)(() => { try { AndroidBootUp.AttachMonitor(); } catch (Exception ex) { Logger.Error("Exception in AndroidBootUp.Start. Err : ", (object)ex.ToString()); AndroidBootUp.HandleBootError(); throw ex; } })) { IsBackground = true }.Start(); } catch (Exception ex) { Logger.Error("Error in Android bootup start: " + ex.ToString()); AndroidBootUp.HandleBootError(); throw ex; } }
private void EnterStateStarting() { Logger.Info("{0}", (object)MethodBase.GetCurrentMethod().Name); this.SerialQueueCheck(); this.mState = StateMachine.State.Starting; try { VBoxBridgeService.Instance.Connect(); } catch (Exception ex1) { Logger.Info("Cannot connect VBoxBridge"); Logger.Info(ex1.ToString()); try { ComRegistration.Register(); Logger.Info("Reconnecting to VBoxBridge"); VBoxBridgeService.Instance.Connect(); } catch (Exception ex2) { Logger.Info("Got exception {0} while re-registering COM", (object)ex2.ToString()); AndroidBootUp.HandleBootError(); } } if (VBoxBridgeService.Instance.StartMachineAsync(this.mVmName, (VBoxBridgeService.BooleanCallback)(success => this.mWorkQueue.DispatchAsync((SerialWorkQueue.Work)(() => this.StartMachineCompletion(success)))), (VBoxBridgeService.BooleanCallback)(success => this.mWorkQueue.DispatchAsync((SerialWorkQueue.Work)(() => this.StopMachineCompletion(success)))))) { return; } Logger.Info("Cannot begin starting guest"); this.EnterStateError(); AndroidBootUp.HandleBootError(); }