[vlc-devel] [PATCH 4/7] win32/window: remove useless done boolean

RĂ©mi Denis-Courmont remi at remlab.net
Mon Feb 3 22:13:15 CET 2020


It was written (and signaled) without proper locking, and it duplicated
the thread-join anyway since it was the very last observable action.
---
 modules/video_output/win32/window.c | 17 +++--------------
 1 file changed, 3 insertions(+), 14 deletions(-)

diff --git a/modules/video_output/win32/window.c b/modules/video_output/win32/window.c
index 7a91c5dc05..3dc9cf32d2 100644
--- a/modules/video_output/win32/window.c
+++ b/modules/video_output/win32/window.c
@@ -52,7 +52,6 @@ typedef struct vout_window_sys_t
     vlc_mutex_t  lock;
     vlc_cond_t   wait;
     bool         b_ready;
-    bool         b_done;
 
     HWND hwnd;
 
@@ -484,22 +483,15 @@ static void Close(vout_window_t *wnd)
 
     free( sys->psz_title );
     if (sys->hwnd)
-    {
         PostMessage( sys->hwnd, WM_CLOSE, 0, 0 );
-        /* wait until the thread is done */
-        vlc_mutex_lock( &sys->lock );
-        while( !sys->b_done )
-        {
-            vlc_cond_wait( &sys->wait, &sys->lock );
-        }
-        vlc_mutex_unlock( &sys->lock );
 
-        DestroyWindow( sys->hwnd );
-    }
     vlc_join(sys->thread, NULL);
     vlc_mutex_destroy( &sys->lock );
     vlc_cond_destroy( &sys->wait );
 
+    if (sys->hwnd)
+        DestroyWindow( sys->hwnd );
+
     HINSTANCE hInstance = GetModuleHandle(NULL);
     UnregisterClass( sys->class_main, hInstance );
     DestroyCursor( sys->cursor_empty );
@@ -691,8 +683,6 @@ static void *EventThread( void *p_this )
         TranslateMessage(&msg);
         DispatchMessage(&msg);
     }
-    sys->b_done = true;
-    vlc_cond_signal( &sys->wait );
     vlc_restorecancel(canc);
     return NULL;
 }
@@ -750,7 +740,6 @@ static int Open(vout_window_t *wnd)
     vlc_mutex_init( &sys->lock );
     vlc_cond_init( &sys->wait );
     sys->b_ready = false;
-    sys->b_done = false;
 
     wnd->sys = sys;
     if( vlc_clone( &sys->thread, EventThread, wnd, VLC_THREAD_PRIORITY_LOW ) )
-- 
2.25.0



More information about the vlc-devel mailing list