[ 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