This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
Scott and Steve,
I have found that Busy is leaving a core file (from NMAP2)
on my IRIX platform from the logo_animateFinish routine at the
busy.c call line 206:
XtRemoveTimeOut(_logoTimeoutId);
Looking at the code for the call to logo_animateFinish(),
I found that the variable _logoTimeoutId is defined twice.
First as a global at the top of the file:
XtIntervalId _logoTimeoutId = 0;
Then, it is redefined in the parameter list to the
function as an integer:
void logo_animateFinish ( _logoTimeoutId )
int _logoTimeoutId;
** Note that the prologue of the function does not match api **
The man page for XtRemoveTimeOut provides that the argument
should be of type XtIntervalId as is defined in the global:
XT FUNCTIONS XtAppAddTimeOut(3Xt)
NAME
XtAppAddTimeOut, XtRemoveTimeOut - register and remove
timeouts
SYNTAX
void XtRemoveTimeOut(timer)
XtIntervalId timer;
Since the _logoTimeoutId is a global, I changed the argument name in
the parameter list to:
void logo_animateFinish ( int _dummy )
This allows the global variable to be used in the routine. The core
dumps have stopped. I believe that the busy cursor is correctly displayed.
I'm not clear from the prologue and the prototype at the top of
the routine for logo_animateFinish how to rectify these 2 uses of
the same variable name.
Steve
------------------------------------------------------------
Steve Chiswell
Unidata User Support