<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns="http://www.w3.org/TR/REC-html40" xmlns:o = 
"urn:schemas-microsoft-com:office:office" xmlns:w = 
"urn:schemas-microsoft-com:office:word"><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<TITLE>Message</TITLE>

<META content="MSHTML 6.00.6000.16481" name=GENERATOR>
<STYLE>@font-face {
        font-family: Wingdings;
}
@page Section1 {size: 8.5in 11.0in; margin: 1.0in 1.25in 1.0in 1.25in; }
P.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
LI.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
DIV.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
A:link {
        COLOR: blue; TEXT-DECORATION: underline
}
SPAN.MsoHyperlink {
        COLOR: blue; TEXT-DECORATION: underline
}
A:visited {
        COLOR: purple; TEXT-DECORATION: underline
}
SPAN.MsoHyperlinkFollowed {
        COLOR: purple; TEXT-DECORATION: underline
}
SPAN.EmailStyle17 {
        COLOR: windowtext; FONT-FAMILY: Arial; mso-style-type: personal-compose
}
DIV.Section1 {
        page: Section1
}
</STYLE>
</HEAD>
<BODY lang=EN-US vLink=purple link=blue>
<DIV><SPAN class=473214316-09072007><FONT face=Arial color=#0000ff size=2>Hi 
Alex,</FONT></SPAN></DIV>
<DIV><FONT face=Arial color=#0000ff size=2></FONT>&nbsp;</DIV>
<DIV><SPAN class=473214316-09072007><FONT face=Arial color=#0000ff size=2>As 
Doug indicated, a 0 timer ID is legit. I made some changes to ACE_Timer_Heap 
about 6 years ago:</FONT></SPAN></DIV>
<DIV><SPAN class=473214316-09072007><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=473214316-09072007><FONT face=Arial color=#0000ff size=2>Wed 
May 23 15:55:21 2001&nbsp; Steve Huston&nbsp; &lt;<A 
href="mailto:shuston@riverace.com">shuston@riverace.com</A>&gt;</FONT></SPAN></DIV>
<DIV>&nbsp;</DIV>
<DIV><SPAN class=473214316-09072007><FONT face=Arial color=#0000ff 
size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * ace/Containers_T.h: Fixed 
comment directing reader to 
include<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
ace/Unbounded_Queue.h (rather than _Set.h) for 
ACE_Unbounded_Queue.</FONT></SPAN></DIV>
<DIV>&nbsp;</DIV>
<DIV><SPAN class=473214316-09072007><FONT face=Arial color=#0000ff 
size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * ace/Timer_Heap_T.{cpp h}: 
Changed the free IDs list from a 
stack<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; to a round-robin 
list. Newly-allocated IDs keep increasing 
til<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; there aren't any 
more, then wrap around to the lowest 
numbered<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; free ID and 
start again. This is a ease-of-use improvement 
to<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; help applications 
catch their timer-related errors 
easier,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; which is 
apparantly important, especially in 
multi-threaded<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
applications.<BR></FONT></SPAN></DIV>
<DIV><SPAN class=473214316-09072007><FONT face=Arial color=#0000ff size=2>which 
may explain this change.</FONT></SPAN></DIV>
<DIV><SPAN class=473214316-09072007><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=473214316-09072007><FONT face=Arial color=#0000ff 
size=2>-Steve</DIV></FONT></SPAN><!-- Converted from text/plain format -->
<P><FONT size=2>--<BR>Steve Huston, Riverace Corporation<BR>Would you like ACE 
to run great on your platform?<BR>See <A 
href="http://www.riverace.com/sponsor.htm">http://www.riverace.com/sponsor.htm</A><BR></FONT></P>
<BLOCKQUOTE dir=ltr 
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
  <DIV></DIV>
  <DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left><FONT 
  face=Tahoma size=2>-----Original Message-----<BR><B>From:</B> 
  ace-users-bounces@cse.wustl.edu [mailto:ace-users-bounces@cse.wustl.edu] <B>On 
  Behalf Of </B>Alex Blate<BR><B>Sent:</B> Sunday, July 08, 2007 8:59 
  PM<BR><B>To:</B> ace-users@cse.wustl.edu<BR><B>Subject:</B> [ace-users] 
  Question regarding timer IDs in ACE_Timer_Queue<BR><BR></FONT></DIV>
  <DIV class=Section1>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">ACE 
  Users:<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">I am porting a large code base to 
  a new compiler, 64-bit compliance, etc., and, in so doing, I have upgraded 
  from ACE 5.1.14 (circa 2001) to ACE 5.5.x. I had some minor issues, but the 
  port and ACE upgrade have gone mercifully smoothly &#8211; a credit, no doubt, to 
  the quality of the ACE package and community.<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Onto my question: Our code uses, 
  inter alia, the ACE_Timer_Queue (via ACE_Thread_Timer_Queue_Adapter, using 
  Timer_Heap). Last week, I hit a very nasty bug which &#8220;went away&#8221; when I made 
  changes to a couple places where we assumed that the timer IDs had to be 
  strictly greater than zero. Looking at the ACE code, I see no reason why timer 
  IDs can&#8217;t be zero ( -1 is the &#8220;null&#8221; value, of course). OTOH, I have to assume 
  that there was a reason why our old code checked for ID &gt; 0 and I want to 
  be sure that I&#8217;m not breaking something else </SPAN></FONT><FONT 
  face=Wingdings size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Wingdings">J</SPAN></FONT><FONT 
  face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Has the Timer_Queue implementation 
  changed between 5.1 and 5.5 such that in 5.1 timers were strictly positive and 
  now they can have zero-valued IDs? <o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">I just would like a sanity check 
  in case my bug went away for some other reason or, being timing-related, is 
  just hiding from me. <o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">I did not fill out the PRF because 
  I consider this a question about a change in your underlying implementation, 
  rather than a bug </SPAN></FONT><FONT face=Wingdings size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Wingdings">J</SPAN></FONT><FONT 
  face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Alex 
  Blate<o:p></o:p></SPAN></FONT></P></DIV></BLOCKQUOTE></BODY></HTML>