<div>Thanks. This issue has already been reported.</div><div><a href="https://github.com/connamara/quickfixn/issues/42">https://github.com/connamara/quickfixn/issues/42</a><font color="#000000"><font><br></font></font></div>
<div><br></div><div>-Grant</div><div><br></div><div><br></div><div class="gmail_quote">2012/3/19 πΟΠΟΧ αΜΕΛΣΕΚ <span dir="ltr"><<a href="mailto:popov@solidinvest.ru">popov@solidinvest.ru</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div lang="RU" link="blue" vlink="purple"><div><p class="MsoNormal"><span lang="EN-US">Hi, I found a bug in QuickFix/n.</span></p><p class="MsoNormal"><span lang="EN-US"></span></p><p class="MsoNormal"><span lang="EN-US">It appears when machine is running continuously for about 25 days without reboot. This bug appears because of using Environment.TickCount. This property gives signed int in result and MaxInt is about 25 days. So when 25 days passed it gives negative result and when QuickFix starts OnStart method begins work not properly</span></p>
<p class="MsoNormal"><span lang="EN-US"></span></p><p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:blue">protected</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas"> <span style="color:blue">override</span> <span style="color:blue">void</span> OnStart()</span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas"> {</span></p><p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas"> shutdownRequested_ = <span style="color:blue">false</span>;</span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas"></span></p><p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas"> <span style="color:blue">while</span>(!shutdownRequested_)</span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas"> {</span></p><p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas"> <span style="color:blue">int</span> reconnectIntervalAsTicks = 1000 * reconnectInterval_;</span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas"> <span style="color:blue">int</span> nowTickCount = <span style="color:#2b91af">Environment</span>.TickCount;</span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas"></span></p><p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas"> </span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas"><span style="color:blue">if</span> ((nowTickCount - lastConnectTickCount) >= reconnectIntervalAsTicks)</span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas"> {</span></p><p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas"> Connect();</span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas"> lastConnectTickCount = nowTickCount;</span></p><p class="MsoNormal" style="text-autospace:none">
<span lang="EN-US" style="font-size:9.5pt;font-family:Consolas"> }</span></p><p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas"></span></p><p class="MsoNormal" style="text-autospace:none">
<span lang="EN-US" style="font-size:9.5pt;font-family:Consolas"> <span style="color:#2b91af">Thread</span>.Sleep(1 * 1000);</span></p><p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas"> </span><span style="font-size:9.5pt;font-family:Consolas">}</span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas"> }</span></p><p class="MsoNormal"><span lang="EN-US"></span></p><p class="MsoNormal" style="text-autospace:none">
<span lang="EN-US">Error in check </span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:blue">if</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas"> ((nowTickCount - lastConnectTickCount) >= reconnectIntervalAsTicks)</span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas"></span></p><p class="MsoNormal"><span lang="EN-US">Initial value of lastConnectTickCount=0 negative-zero is negative and so smaller than reconnectIntervalAsTicks</span></p>
<p class="MsoNormal"><span lang="EN-US">I fixed the bug by setting initial value of </span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas">lastConnectTickCount=Environment.TickCount.</span></p><p class="MsoNormal">
<span lang="EN-US"></span></p><p class="MsoNormal"><span lang="EN-US">Regards,</span></p><p class="MsoNormal"><span lang="EN-US">Alexey Popov</span></p><p class="MsoNormal"><span lang="EN-US">SOLID IFC, Moscow, Russia</span></p>
<p class="MsoNormal"><span>Tel.:<a href="tel:%2B74952287010%20ext.%201383" value="+74952287010" target="_blank">+74952287010 ext. 1383</a></span></p><p class="MsoNormal"></p></div></div><br>_______________________________________________<br>
Quickfixn mailing list<br>
<a href="mailto:Quickfixn@lists.quickfixn.com">Quickfixn@lists.quickfixn.com</a><br>
<a href="http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com" target="_blank">http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><div><font><span style="background-color:#000000"><span style="background-color:#ffffff">Grant Birchmeier</span></span></font><font><font color="#3333ff"><br></font></font></div>
<div><font><b><font color="#3333ff"><span style="background-color:#ffcc33"><span style="background-color:#ffcc66"><span style="background-color:#ffcc99"><span style="background-color:#ffffff"><span style="background-color:#ffcc00">Connamara Systems, LLC</span></span></span></span></span></font></b></font><br>
</div><div><font><b>Made-To-Measure Trading Solutions.</b></font></div><div><font>Exactly what you need. No more. No less.</font><font><b><font color="#3333ff"><br></font></b></font></div><div><font><a href="http://connamara.com" target="_blank">http://connamara.com</a><br>
</font></div><br>