OK, XEmacs is 'single-threaded' and will probably stay that way for
the foreseeable future for reasons that I don't know (and probably
wouldn't understand anyway).
But is it possible to give a lisp function a higher priority than
normal?
To explain what I mean, here's a scenario:
Eicq has a function that sends a 'keep-alive' packet to the ICQ server
every 60 seconds. If that packet doesn't get through every two
minutes, the ICQ server will kick the user off ICQ.
,----[ the function... ]
| (defun eicq-keep-alive-start ()
| "Start keeping alive."
| (eicq-keep-alive-stop)
| (start-itimer
| "eicq keep-alive"
| (lambda ()
| (eicq-send (eicq-pack-keep-alive)))
| ;; sending faster won't hurt
| 60 60))
`----
In the normal course of events, it's not hard for this function to
miss the deadline. Sometimes starting up Gnus can do it (especially
if you've got a lot of mail/news for Gnus to bring in).
Is there any way of making XEmacs process my keep-alive function
before it does anything else? If Gnus is starting up and the timer
on eicq-keep-alive comes around to the top of the minute, stop
processing the Gnus startup (or whatever else is happening) and
process the keep-alive function in Eicq.
Did you understand that? I've just re-read it and I'm not sure that I
do.
So, possible or pipe-dream?
--
|---<Steve Youngs>---------------<GnuPG KeyID: 9E7E2820>---|
| XEmacs - It's not just an editor. |
| It's a way of life. |
|------------------------------------<youngs(a)xemacs.org>---|