<!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> </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> </DIV>
<DIV><SPAN class=473214316-09072007><FONT face=Arial color=#0000ff size=2>Wed
May 23 15:55:21 2001 Steve Huston <<A
href="mailto:shuston@riverace.com">shuston@riverace.com</A>></FONT></SPAN></DIV>
<DIV> </DIV>
<DIV><SPAN class=473214316-09072007><FONT face=Arial color=#0000ff
size=2> * ace/Containers_T.h: Fixed
comment directing reader to
include<BR>
ace/Unbounded_Queue.h (rather than _Set.h) for
ACE_Unbounded_Queue.</FONT></SPAN></DIV>
<DIV> </DIV>
<DIV><SPAN class=473214316-09072007><FONT face=Arial color=#0000ff
size=2> * ace/Timer_Heap_T.{cpp h}:
Changed the free IDs list from a
stack<BR> to a round-robin
list. Newly-allocated IDs keep increasing
til<BR> there aren't any
more, then wrap around to the lowest
numbered<BR> free ID and
start again. This is a ease-of-use improvement
to<BR> help applications
catch their timer-related errors
easier,<BR> which is
apparantly important, especially in
multi-threaded<BR>
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> </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> </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 – 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> </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 “went away” 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’t be zero ( -1 is the “null” value, of course). OTOH, I have to assume
that there was a reason why our old code checked for ID > 0 and I want to
be sure that I’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> </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> </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> </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> </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>