[vlc-commits] win32: inhibit: Ensure we restore the state when cancelled
vlc/vlc-3.0 | branch: master | Hugo Beauzée-Luyssen | Tue Feb 13 11:09:24 2018 +0100| [1e59e3ec840967d7a5746ed0d1ae8ae8e3d35ed3] | committer: Hugo Beauzée-Luyssen win32: inhibit: Ensure we restore the state when cancelled (cherry picked from commit 3784076449bf9fabd146710908013496befd9700) Signed-off-by: Hugo Beauzée-Luyssen > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=1e59e3ec840967d7a5746ed0d1ae8ae8e3d35ed3 --- modules/video_output/win32/inhibit.c | 9 + 1 file changed, 9 insertions(+) diff --git a/modules/video_output/win32/inhibit.c b/modules/video_output/win32/inhibit.c index aae006daaa..7a4ce0053a 100644 --- a/modules/video_output/win32/inhibit.c +++ b/modules/video_output/win32/inhibit.c @@ -49,6 +49,13 @@ static void Inhibit (vlc_inhibit_t *ih, unsigned mask) vlc_cond_signal(&sys->cond); } +static void RestoreStateOnCancel( void* p_opaque ) +{ +VLC_UNUSED(p_opaque); +SetThreadExecutionState( ES_CONTINUOUS ); +msg_Err( (vlc_object_t*)p_opaque, "Restored context" ); +} + static void* Run(void* obj) { vlc_inhibit_t *ih = (vlc_inhibit_t*)obj; @@ -62,12 +69,14 @@ static void* Run(void* obj) vlc_mutex_lock(&sys->mutex); mutex_cleanup_push(&sys->mutex); +vlc_cleanup_push(RestoreStateOnCancel, ih); while (!sys->signaled) vlc_cond_wait(&sys->cond, &sys->mutex); mask = sys->mask; sys->signaled = false; vlc_mutex_unlock(&sys->mutex); vlc_cleanup_pop(); +vlc_cleanup_pop(); bool suspend = (mask & VLC_INHIBIT_DISPLAY) != 0; if (suspend) ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] win32: inhibit: Ensure we restore the state when cancelled
vlc | branch: master | Hugo Beauzée-Luyssen | Tue Feb 13 11:09:24 2018 +0100| [3784076449bf9fabd146710908013496befd9700] | committer: Hugo Beauzée-Luyssen win32: inhibit: Ensure we restore the state when cancelled > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3784076449bf9fabd146710908013496befd9700 --- modules/video_output/win32/inhibit.c | 9 + 1 file changed, 9 insertions(+) diff --git a/modules/video_output/win32/inhibit.c b/modules/video_output/win32/inhibit.c index aae006daaa..7a4ce0053a 100644 --- a/modules/video_output/win32/inhibit.c +++ b/modules/video_output/win32/inhibit.c @@ -49,6 +49,13 @@ static void Inhibit (vlc_inhibit_t *ih, unsigned mask) vlc_cond_signal(&sys->cond); } +static void RestoreStateOnCancel( void* p_opaque ) +{ +VLC_UNUSED(p_opaque); +SetThreadExecutionState( ES_CONTINUOUS ); +msg_Err( (vlc_object_t*)p_opaque, "Restored context" ); +} + static void* Run(void* obj) { vlc_inhibit_t *ih = (vlc_inhibit_t*)obj; @@ -62,12 +69,14 @@ static void* Run(void* obj) vlc_mutex_lock(&sys->mutex); mutex_cleanup_push(&sys->mutex); +vlc_cleanup_push(RestoreStateOnCancel, ih); while (!sys->signaled) vlc_cond_wait(&sys->cond, &sys->mutex); mask = sys->mask; sys->signaled = false; vlc_mutex_unlock(&sys->mutex); vlc_cleanup_pop(); +vlc_cleanup_pop(); bool suspend = (mask & VLC_INHIBIT_DISPLAY) != 0; if (suspend) ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits