Quoting David Mandelin <[EMAIL PROTECTED]>:
 
> Yes, but the timers could be changed so that they don't call functions
> directly, but post "timer" events instead. Similarly, the event loops
> could be set up to generate "idle" events every time AbiWord goes idle.
> The event mapper would take care of the rest.

This is a good suggestion. What I don't want to see: an idle put into the 
UT_Timer class. I'd rather see a separate UT_Idle class for this *if we choose 
to go through this route*.

Having events get posted to our event queue is a good suggestion. However, we 
still need some protection for the event queue itself, since the timers still 
interrupt. eg:

Inserting event into position 2 in queue
Timer fires, sees position 2 open in queue
Timer inserts event into position 2 to queue a spell-check
Timer exits
Original process enters its event into position 2 in the queue

Result: 1 event gets lost, and the word never gets spell-checked.

Still bad news, I'm afraid, but definitely fixable.

Dom

Reply via email to