public override void ReleaseRunspace(Runspace runspace) { bool flag; Func<Item<Runspace>, bool> func = null; runspace.ResetRunspaceState(); lock (this._runspaceCache.TimerServicingSyncObject) { IEnumerable<Item<Runspace>> items = this._runspaceCache.Cast<Item<Runspace>>(); if (func == null) { func = (Item<Runspace> item) => item.InstanceId == runspace.InstanceId; } foreach (Item<Runspace> item1 in items.Where<Item<Runspace>>(func)) { item1.Busy = false; flag = true; } if (!flag) { throw new InvalidOperationException(); } } if (this._maxRunspaces != -1) { this.CheckAndStartRequestServicingThread(); } }
public virtual void ResetRunspaceState() { runspace.ResetRunspaceState(); }
/// <summary> /// /// </summary> /// <param name="runspace"></param> public override void ReleaseRunspace(Runspace runspace) { runspace.ResetRunspaceState(); lock(_runspaceCache.TimerServicingSyncObject) { bool found = false; foreach (Item<Runspace> item in _runspaceCache.Cast<Item<Runspace>>().Where(item => item.InstanceId == runspace.InstanceId)) { item.Busy = false; found = true; } if (!found) throw new InvalidOperationException(); } if (_maxRunspaces != MaxRunspacesPossible) CheckAndStartRequestServicingThread(); }