Esempio n. 1
0
        public void ProcessRunspaceException(Runspace runspace, int attempt, InvalidRunspaceStateException e)
        {
            RunspaceStateInfo info = runspace.RunspaceStateInfo;

            if (info != null)
            {
                LOGGER.TraceEvent(TraceEventType.Warning, CAT_DEFAULT,
                                  "Runspace is in wrong state. Exception: {0}, State: {1}, Reason: {2}, Attempt number: {3}",
                                  e, info.State, info.Reason, attempt);
            }
            else
            {
                LOGGER.TraceEvent(TraceEventType.Warning, CAT_DEFAULT,
                                  "Runspace is in wrong state. Exception: {0}, Attempt number: {1}", e, attempt);
            }
            if (attempt == MAX_ATTEMPTS)
            {
                LOGGER.TraceEvent(TraceEventType.Error, CAT_DEFAULT, "Maximum number of attempts achieved, signalling the exception");
                _runSpacePool.returnFailedRunspace(runspace);
                throw e;
            }
            else
            {
                runspace = _runSpacePool.getAnotherRunspace(runspace);
            }
        }
 public static bool IsUsable(this RunspaceStateInfo runspaceStateInfo)
 {
     return(runspaceStateInfo.State switch
     {
         RunspaceState.Broken or RunspaceState.Closed or RunspaceState.Closing or RunspaceState.Disconnecting or RunspaceState.Disconnected => false,
         _ => true,
     });
 public static void ThrowCancelledIfUnusable(this RunspaceStateInfo runspaceStateInfo)
 {
     if (!IsUsable(runspaceStateInfo))
     {
         throw new OperationCanceledException();
     }
 }
Esempio n. 4
0
 public RunspaceEventQueueItem(
     RunspaceStateInfo runspaceStateInfo,
     RunspaceAvailability currentAvailability,
     RunspaceAvailability newAvailability)
 {
     this.RunspaceStateInfo           = runspaceStateInfo;
     this.CurrentRunspaceAvailability = currentAvailability;
     this.NewRunspaceAvailability     = newAvailability;
 }
Esempio n. 5
0
 internal RunspaceStateInfo(RunspaceStateInfo runspaceStateInfo)
 {
     this._state  = runspaceStateInfo.State;
     this._reason = runspaceStateInfo.Reason;
 }
Esempio n. 6
0
 internal RunspaceStateEventArgs(RunspaceStateInfo runspaceStateInfo) => this._runspaceStateInfo = runspaceStateInfo != null ? runspaceStateInfo : throw RunspaceStateEventArgs._trace.NewArgumentNullException(nameof(runspaceStateInfo));