private void CheckRuntimeEnvironment() { if (executing) { var errorMsg = "Found out that this grain is already in the middle of execution." + " Single threaded-ness violation!\n" + TestRuntimeEnvironmentUtility.CaptureRuntimeEnvironment(); this.logger.Error(1, "\n\n\n\n" + errorMsg + "\n\n\n\n"); throw new Exception(errorMsg); //Environment.Exit(1); } if (RuntimeContext.Current == null || RuntimeContext.Current.ActivationContext == null) { var errorMsg = "Found RuntimeContext.Current == null.\n" + TestRuntimeEnvironmentUtility.CaptureRuntimeEnvironment(); this.logger.Error(1, "\n\n\n\n" + errorMsg + "\n\n\n\n"); throw new Exception(errorMsg); //Environment.Exit(1); } var context = RuntimeContext.Current.ActivationContext; var scheduler = TaskScheduler.Current; executing = true; Assert.Equal(_scheduler, scheduler); Assert.Equal(_context, context); Assert.NotNull(context); executing = false; }
private void CheckRuntimeEnvironment(string str) { var callStack = new StackTrace(); //Log("CheckRuntimeEnvironment - {0} Executing={1}", str, executing); if (executing) { var errorMsg = string.Format( "Found out that grain {0} is already in the middle of execution." + "\n Single threaded-ness violation!" + "\n {1} \n Call Stack={2}", this._id, TestRuntimeEnvironmentUtility.CaptureRuntimeEnvironment(), callStack); this.logger.Error(1, "\n\n\n\n" + errorMsg + "\n\n\n\n"); this.scheduler.DumpSchedulerStatus(); //Environment.Exit(1); throw new Exception(errorMsg); } //Assert.IsFalse(executing, "Found out that this grain is already in the middle of execution. Single threaded-ness violation!"); executing = true; //Log("CheckRuntimeEnvironment - Start sleep " + str); Thread.Sleep(10); executing = false; //Log("CheckRuntimeEnvironment - End sleep " + str); }