private void FreeAllWaitersWithError(Exception e) { lock (_waitingRequests) { foreach (ResponseWaiter waiter in _waitingRequests) { waiter.error = e; waiter.waitEvent.Set(); } _waitingRequests.Clear(); } lock (_getResponseWaiters) { AssetServerError ase = new AssetServerError(e.Message, e); foreach (KeyValuePair <string, List <ResponseWaiter> > waiterPair in _getResponseWaiters) { foreach (ResponseWaiter waiter in waiterPair.Value) { waiter.error = e; waiter.waitEvent.Set(); if (waiter.callBack != null) { //also call async waiter.callBack(null, ase); } } } _getResponseWaiters.Clear(); } }
/// <summary> /// Checks the server response for errors and throws an exception if /// there is a problem /// </summary> /// <param name="serverResponseMsg">The response from the server</param> private void CheckThrowError(ResponseWaiter responseWaiter) { if (responseWaiter.error != null) { throw new AssetServerError(responseWaiter.error.Message, responseWaiter.error); } AssetServerError err = DetermineErrorFromStatus(responseWaiter.response); if (err != null) { throw err; } }
private void FreeAllWaitersWithError(Exception e) { lock (_waitingRequests) { foreach (ResponseWaiter waiter in _waitingRequests) { waiter.error = e; waiter.waitEvent.Set(); } _waitingRequests.Clear(); } lock (_getResponseWaiters) { AssetServerError ase = new AssetServerError(e.Message, e); foreach (KeyValuePair<string, List<ResponseWaiter>> waiterPair in _getResponseWaiters) { foreach (ResponseWaiter waiter in waiterPair.Value) { waiter.error = e; waiter.waitEvent.Set(); if (waiter.callBack != null) { //also call async waiter.callBack(null, ase); } } } _getResponseWaiters.Clear(); } }