]> git.sesse.net Git - vlc/commit
Work-around window-on-top + fullscreen deadlock (refs #882)
authorRémi Denis-Courmont <rem@videolan.org>
Wed, 6 Dec 2006 16:47:10 +0000 (16:47 +0000)
committerRémi Denis-Courmont <rem@videolan.org>
Wed, 6 Dec 2006 16:47:10 +0000 (16:47 +0000)
commitc53808689f7ea5a02905d7baba3a9660ae39c3ba
treea657ee94f921b1fcc39b8bc14bf040084cf67dda
parent4b8daf879c576d7d49762f06cd2b5c362e87aade
Work-around window-on-top + fullscreen deadlock (refs #882)

FIXME FIXME FIXME FIXME: EXPLICIT HACK.
On the one hand, we cannot hold the lock while triggering a callback, as
it causes a deadlock with video-on-top handling. On the other hand, we
have to lock while triggering the callback to:
 1/ make sure video-on-top remains in sync with fullscreen (i.e.
    unlocking creates a race condition if fullscreen is switched on and
    off VERY FAST).
 2/ avoid possible corruption bugs if another thread gets the mutex and
    modifies our data in-between (though it does not seem like it could really
    do much harm in this particular case).

This is obviously contradictory. Correct solutions may include:
 - putting the fullscreen NAND video-on-top logic out of libvlc,
   back into the video output plugins (ugly code duplication...),
 - serializing fullscreen and video-on-top handling properly instead of
   using the fullscreen callback. That's got to be the correct one.
modules/video_output/x11/xcommon.c