more mmtimer questions

Oliver Stieber oliver_stieber at
Fri Feb 11 13:59:24 CST 2005

While people are thinking about mmtimer I've got a
question, or more a problem.

Sometimes, mainly when escape from Bink videos (or
they run to the end)  the linked list in time.c is
getting corrupt. (this happens about 1 in 5 times)


    for (ptimer = &TIME_TimersList; *ptimer != NULL; )
        /* silly test */
        if((int)*ptimer < 1000){
            FIXME("ptimer out of expected range,
timers list is probably corrupt %p \n", *ptimer);

I've had a look through the code and can't spot any
problems with managing the linked list which would
point to problems with TIME_TimersList but when the
crash occurs ptimer != &TIME_TimersList

Also if the we're using a = &TIME_TimersList,
a=&(*a)->lpNext  and then referencing *a in critical
sections doesn't anything that modifies
TIME_TimersList or ... lpNext also have to be in a
critical section? e.g. TIME_MMTimeStart and

If so should the code be change to copy the values in
TIME_TimersList and  ..->lpNext  instead of
referencing them or should it be changed to make sure
TIME_MMTimeStart and TIME_MMTimeStop etc.. use
critical sections.

Send instant messages to your online friends 

More information about the wine-devel mailing list