<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>