@@ -45,31 +45,36 @@ public override void Action(IEvent ev, IProcessContext context)
45
45
46
46
object syncObject = null ;
47
47
48
- lock ( _locksAccess )
48
+ try
49
49
{
50
- if ( ! Locks . ContainsKey ( lockValue ) )
50
+ lock ( _locksAccess )
51
51
{
52
- Locks . Add ( lockValue , new object ( ) ) ;
53
- }
52
+ if ( ! Locks . ContainsKey ( lockValue ) )
53
+ {
54
+ Locks . Add ( lockValue , new object ( ) ) ;
55
+ }
54
56
55
- syncObject = Locks [ lockValue ] ;
56
- }
57
+ syncObject = Locks [ lockValue ] ;
58
+ }
57
59
58
- lock ( syncObject )
59
- {
60
- foreach ( IProcessBehaviour behaviour in _block . Where ( behaviour => behaviour . Condition ( ev , context ) ) )
60
+ lock ( syncObject )
61
61
{
62
- ProcessContext . PreAction ? . Invoke ( behaviour , new ActionEventArgs ( context : context , ev : ev ) ) ;
63
- behaviour . Action ( ev , context ) ;
64
- ProcessContext . PostAction ? . Invoke ( behaviour , new ActionEventArgs ( context : context , ev : ev ) ) ;
62
+ foreach ( IProcessBehaviour behaviour in _block . Where ( behaviour => behaviour . Condition ( ev , context ) ) )
63
+ {
64
+ ProcessContext . PreAction ? . Invoke ( behaviour , new ActionEventArgs ( context : context , ev : ev ) ) ;
65
+ behaviour . Action ( ev , context ) ;
66
+ ProcessContext . PostAction ? . Invoke ( behaviour , new ActionEventArgs ( context : context , ev : ev ) ) ;
67
+ }
65
68
}
66
69
}
67
-
68
- lock ( _locksAccess )
70
+ finally
69
71
{
70
- if ( Locks . ContainsKey ( lockValue ) )
72
+ lock ( _locksAccess )
71
73
{
72
- Locks . Remove ( lockValue ) ;
74
+ if ( Locks . ContainsKey ( lockValue ) )
75
+ {
76
+ Locks . Remove ( lockValue ) ;
77
+ }
73
78
}
74
79
}
75
80
}
0 commit comments