Re: [AD] Win2k timer bug

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


> shutdown_dialog would lock up on me when I'm using windowed mode (not in
> full screen - just DX_WINDOWED).

It sounds like this is more related to the gfx subsystem than directly to
timers. Could you try your code with the GDI driver ? Does it work under
Win9x ?

> I traced it back to the Allegro timer
> code, specifically at win/wtimer.c, line ~308,
>
>     WaitForSingleObject(timer_int->thread, INFINITE);
>
> Putting TRACE() around it confirms that this fuction never returns.

Then this means that the timer thread didn't terminate: although line 298
had told it to do so, it never complied.

The only reason I can think of is that the thread is deadlocked inside the
timer callback proc. I guess the stop_timer_thread() function was called by
'remove_int(dclick_check)' at gui.c, line 1048. Could you confirm it ?
Did you provide custom gui_mouse_*() callbacks ?

> Possible fix: MSDN says:
> "Windows NT/2000: The handle must have SYNCHRONIZE access."
> http://msdn.microsoft.com/library/psdk/winbase/synchro_4ldg.htm

It has got already this access right.
When a thread is created without explicit security descriptor, it inherits
the THREAD_ALL_ACCESS access right, that contains the SYNCHRONIZE right.

--
Eric Botcazou
ebotcazou@xxxxxxxxxx



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/