Skip to content

Commit 8aa3bf3

Browse files
committed
add try-finally to dynamicsynchronisationblockbehaviour.
1 parent ad8c63a commit 8aa3bf3

File tree

2 files changed

+24
-17
lines changed

2 files changed

+24
-17
lines changed

Inversion.Extensibility/Inversion.Extensibility.csproj

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
<PropertyGroup>
44
<TargetFramework>netstandard2.0</TargetFramework>
55
<PackageId>Inversion.Extensibility</PackageId>
6-
<Version>1.0.11</Version>
6+
<Version>1.0.12</Version>
77
<Authors>Adam Christie</Authors>
8+
<AssemblyVersion>1.0.12.0</AssemblyVersion>
9+
<FileVersion>1.0.12.0</FileVersion>
810
</PropertyGroup>
911
<ItemGroup>
1012
<PackageReference Include="Newtonsoft.Json" Version="12.0.1" />

Inversion.Extensibility/Process/Behaviour/DynamicSynchronisationBlockBehaviour.cs

+21-16
Original file line numberDiff line numberDiff line change
@@ -45,31 +45,36 @@ public override void Action(IEvent ev, IProcessContext context)
4545

4646
object syncObject = null;
4747

48-
lock (_locksAccess)
48+
try
4949
{
50-
if (!Locks.ContainsKey(lockValue))
50+
lock (_locksAccess)
5151
{
52-
Locks.Add(lockValue, new object());
53-
}
52+
if (!Locks.ContainsKey(lockValue))
53+
{
54+
Locks.Add(lockValue, new object());
55+
}
5456

55-
syncObject = Locks[lockValue];
56-
}
57+
syncObject = Locks[lockValue];
58+
}
5759

58-
lock (syncObject)
59-
{
60-
foreach (IProcessBehaviour behaviour in _block.Where(behaviour => behaviour.Condition(ev, context)))
60+
lock (syncObject)
6161
{
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+
}
6568
}
6669
}
67-
68-
lock (_locksAccess)
70+
finally
6971
{
70-
if (Locks.ContainsKey(lockValue))
72+
lock (_locksAccess)
7173
{
72-
Locks.Remove(lockValue);
74+
if (Locks.ContainsKey(lockValue))
75+
{
76+
Locks.Remove(lockValue);
77+
}
7378
}
7479
}
7580
}

0 commit comments

Comments
 (0)