Mercurial > pub > ImplabNet
comparison Implab/FuncTaskBase.cs @ 149:eb793fbbe4ea v2
fixed promises cancellation
| author | cin |
|---|---|
| date | Wed, 06 May 2015 17:11:27 +0300 |
| parents | 8c0b95069066 |
| children | dd4a3590f9c6 |
comparison
equal
deleted
inserted
replaced
| 148:e6d4b41f0101 | 149:eb793fbbe4ea |
|---|---|
| 6 readonly Func<Exception, TResult> m_cancel; | 6 readonly Func<Exception, TResult> m_cancel; |
| 7 readonly Func<Exception, TResult> m_error; | 7 readonly Func<Exception, TResult> m_error; |
| 8 | 8 |
| 9 int m_cancelationLock; | 9 int m_cancelationLock; |
| 10 | 10 |
| 11 protected FuncTaskBase( Func<Exception, TResult> error, Func<Exception, TResult> cancel) { | 11 protected FuncTaskBase( Func<Exception, TResult> error, Func<Exception, TResult> cancel, bool autoCancellable) { |
| 12 m_error = error; | 12 m_error = error; |
| 13 m_cancel = cancel; | 13 m_cancel = cancel; |
| 14 if (autoCancellable) | |
| 15 CancellationRequested(CancelOperation); | |
| 14 } | 16 } |
| 15 | 17 |
| 16 public void Reject(Exception error) { | 18 public void Reject(Exception error) { |
| 17 Safe.ArgumentNotNull(error, "error"); | 19 Safe.ArgumentNotNull(error, "error"); |
| 18 if (LockCancelation()) | 20 if (LockCancelation()) |
