Re: [AD] Program hangs

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


> The program below hangs when show_mouse calls install_int which in turn
> calls lock_mutex.

Yes, that's more or less what I'd expect.

> It may take some iterations until it hangs (it's a bit
> random, the rest time will affect the probability). If I move show_mose
to
> outside of the section with acquired screen I don't get the error, at
least
> not within a reasonable time. The same if I remove either rest or vsync.
> I can't find anything about such restrictions in the docs, so I assume
that
> this is a bug.

Yes and no. I would have generally recommended against calling show_mouse()
while the bitmap is locked, because the asynchronous mouse drawing code
draws from a seperate thread and locking/unlocking bitmaps from seperate
threads is generally a bad idea that Allegro sortof gets away with most of
the time.
The recommendation is to call show_mouse() once and use
scare/unscare_mouse() before doing your drawing operations (better idea
than show_mouse(NULL) anyway, because you don't have to remove the mouse if
you're using a hardware cursor. The scare* functions know about this,
show_mouse(NULL) does not) and not between lock_screen()/release_screen().
That said, someone should test this in Windows. If it behaves fine there,
then I guess it should do so in X11 as well.

Evert




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