I am re-posting this issue because it is critical to my app, and seems like
a very
relevant issue for this forum.  I searched the archives and did not find an
answer.

I am using the old serial interface, but it applies equally to the new
serial interface.

I want to call TimGetTicks() from my wakeup handler routine (the function
set in
the call to SerSetWakeupHandler(), or SrmSetWakeupHandler() for the new
serial interface).  However, since the wakeup handler is called directly
from the
Palm's serial port ISR, I need to be very cautious about what I do.
Warnings abound
in the information that is available (for example, Alan J. Weiner
http://www.palmpower.com/issuesprint/issue199903/serial.html ) that only a
few
API's are safe to call from this context.

The issues would be re-entrancy and control of access to data.  Any API
called
from the wakeup handler may have another call in progress (thus the
re-entrancy
requirement); there is also the possibility of accessing data that is only
partially
updated, if the access is read-only.

However, I don't know of any PalmOS API documentation that indicates which
API's
are written to support re-entrancy, which perform atomic updates (either by
disabling
interrupts or by virtue of the word size of the data), etc.

I am testing the call to TimGetTicks() and it seems to work so far; but the
kinds of
problems caused by a call to an unsafe API are not easy to test for (I would
need to
somehow create a window so that I know that a call to TimGetTicks() is
active when
I call it from the wakeup handler, for example).

I would very much appreciate any help available, especially from those who
are familiar
with the internals of the API's.

Thank you,
Bill Heidler
< [EMAIL PROTECTED] >




-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/

Reply via email to