Mercurial > pub > ImplabNet
diff Implab/ActionChainTaskT.cs @ 187:dd4a3590f9c6 ref20160224
Reworked cancelation handling, if the cancel handler isn't specified the OperationCanceledException will be handled by the error handler
Any unhandled OperationCanceledException will cause the promise cancelation
author | cin |
---|---|
date | Tue, 19 Apr 2016 17:35:20 +0300 |
parents | eb793fbbe4ea |
children | 40d7fed4a09e |
line wrap: on
line diff
--- a/Implab/ActionChainTaskT.cs Tue Apr 19 00:50:14 2016 +0300 +++ b/Implab/ActionChainTaskT.cs Tue Apr 19 17:35:20 2016 +0300 @@ -12,8 +12,10 @@ if (m_task != null && LockCancelation()) { try { var p = m_task(value); - p.On(SetResult, HandleErrorInternal, SetCancelled); + p.On(SetResult, HandleErrorInternal, HandleCancelInternal); CancellationRequested(p.Cancel); + } catch (OperationCanceledException reason) { + HandleCancelInternal(reason); } catch(Exception err) { HandleErrorInternal(err); }