Mercurial > pub > ImplabNet
comparison Implab/Diagnostics/Extensions.cs @ 109:1b7ebcc52e5a v2
minor fixes
author | cin |
---|---|
date | Fri, 14 Nov 2014 14:04:24 +0300 |
parents | a43745f81f10 |
children | 2573b562e328 |
comparison
equal
deleted
inserted
replaced
108:f3bdb7ba59b9 | 109:1b7ebcc52e5a |
---|---|
2 public static class Extensions { | 2 public static class Extensions { |
3 public static IPromise<T> EndLogicalOperation<T>(this IPromise<T> promise) { | 3 public static IPromise<T> EndLogicalOperation<T>(this IPromise<T> promise) { |
4 Safe.ArgumentNotNull(promise, "promise"); | 4 Safe.ArgumentNotNull(promise, "promise"); |
5 var op = TraceContext.Instance.DetachLogicalOperation(); | 5 var op = TraceContext.Instance.DetachLogicalOperation(); |
6 | 6 |
7 return promise.Anyway(() => { | 7 return promise.Then<T>( |
8 TraceContext.Instance.EnterLogicalOperation(op,true); | 8 x => { |
9 TraceLog.EndLogicalOperation(); | 9 TraceContext.Instance.EnterLogicalOperation(op,true); |
10 TraceContext.Instance.Leave(); | 10 TraceLog.TraceInformation("promise = {0}", x); |
11 }); | 11 TraceLog.EndLogicalOperation(); |
12 TraceContext.Instance.Leave(); | |
13 return x; | |
14 }, | |
15 err =>{ | |
16 TraceContext.Instance.EnterLogicalOperation(op,true); | |
17 TraceLog.TraceError("promise died {0}", err); | |
18 TraceLog.EndLogicalOperation(); | |
19 TraceContext.Instance.Leave(); | |
20 throw new TransientPromiseException(err); | |
21 }, | |
22 () => { | |
23 TraceContext.Instance.EnterLogicalOperation(op,true); | |
24 TraceLog.TraceInformation("promise cancelled"); | |
25 TraceLog.EndLogicalOperation(); | |
26 TraceContext.Instance.Leave(); | |
27 } | |
28 ); | |
12 } | 29 } |
13 | 30 |
14 public static IPromise EndLogicalOperation(this IPromise promise) { | 31 public static IPromise EndLogicalOperation(this IPromise promise) { |
15 Safe.ArgumentNotNull(promise, "promise"); | 32 Safe.ArgumentNotNull(promise, "promise"); |
16 var op = TraceContext.Instance.DetachLogicalOperation(); | 33 var op = TraceContext.Instance.DetachLogicalOperation(); |