<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p
{mso-style-priority:99;
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
span.EmailStyle18
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:black;}
.MsoChpDefault
{mso-style-type:export-only;
mso-fareast-language:EN-US;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="blue" vlink="purple">
<div class="WordSection1">
<div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:black">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:black">I had a bug today where a timer call back and a sequential processer both sent the same order (same tag 11).<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:black">This happened because the callback identified the order as to be sent before the sequential handler had updated the status of the order as sent. This would rarely
happen, but did occur.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:black">My thought was to place a lock around the portion of code that; checks if an order is to be sent, sends it and marks it as sent:<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white;mso-fareast-language:EN-US">
</span><span style="font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white;mso-fareast-language:EN-US">lock</span><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white;mso-fareast-language:EN-US">
(sendLock)<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white;mso-fareast-language:EN-US"> {<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white;mso-fareast-language:EN-US">
</span><span style="font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white;mso-fareast-language:EN-US">if</span><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white;mso-fareast-language:EN-US">
(!</span><span style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white;mso-highlight:white;mso-fareast-language:EN-US">dictionaryMaps</span><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white;mso-fareast-language:EN-US">.isWorking[order])<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white;mso-fareast-language:EN-US"> {<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white;mso-fareast-language:EN-US"> fixOrder.TransactTime =
</span><span style="font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white;mso-fareast-language:EN-US">new</span><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white;mso-fareast-language:EN-US">
</span><span style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white;mso-highlight:white;mso-fareast-language:EN-US">TransactTime</span><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white;mso-fareast-language:EN-US">(</span><span style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white;mso-highlight:white;mso-fareast-language:EN-US">DateTime</span><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white;mso-fareast-language:EN-US">.UtcNow,
</span><span style="font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white;mso-fareast-language:EN-US">true</span><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white;mso-fareast-language:EN-US">);<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white;mso-fareast-language:EN-US">
</span><span style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white;mso-highlight:white;mso-fareast-language:EN-US">Session</span><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white;mso-fareast-language:EN-US">.SendToTarget(fixOrder,
</span><span style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white;mso-highlight:white;mso-fareast-language:EN-US">Globals</span><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white;mso-fareast-language:EN-US">.sessionID);<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white;mso-fareast-language:EN-US">
</span><span style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white;mso-highlight:white;mso-fareast-language:EN-US">dictionaryMaps</span><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white;mso-fareast-language:EN-US">.isWorking[order]
= </span><span style="font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white;mso-fareast-language:EN-US">true</span><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white;mso-fareast-language:EN-US">;<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white;mso-fareast-language:EN-US"> }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white;mso-fareast-language:EN-US"> }</span><span style="font-size:9.5pt;font-family:Consolas;color:black;mso-fareast-language:EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:black">I believe this would solve by issue, but I am worried that there maybe unintended consequence to placing a lock around the SendToTarget method.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:black">Does anyone see any issues?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:black">Thanks,<o:p></o:p></span></p>
</div>
</div>
</div>
</body>
</html>