vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Tue Nov 23 
23:07:05 2010 +0200| [2ebdd8c3540d6ff5a48cebf8037120edfb7219f8] | committer: 
Rémi Denis-Courmont 

Win32: simplify vlc_cancel()

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=2ebdd8c3540d6ff5a48cebf8037120edfb7219f8
---

 src/win32/thread.c |   10 ++++------
 1 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/win32/thread.c b/src/win32/thread.c
index d2018d5..0c42284 100644
--- a/src/win32/thread.c
+++ b/src/win32/thread.c
@@ -79,7 +79,7 @@ static DWORD vlc_cancelable_wait (DWORD count, const HANDLE 
*handles,
                                            delay);
     if (result == WAIT_OBJECT_0 + count)
     {
-        vlc_cancel_self (NULL);
+        vlc_cancel_self ((uintptr_t)th);
         return WAIT_IO_COMPLETION;
     }
     else
@@ -645,20 +645,18 @@ int vlc_clone_detach (vlc_thread_t *p_handle, void 
*(*entry) (void *),
 /*** Thread cancellation ***/
 
 /* APC procedure for thread cancellation */
-static void CALLBACK vlc_cancel_self (ULONG_PTR dummy)
+static void CALLBACK vlc_cancel_self (ULONG_PTR self)
 {
-    struct vlc_thread *th = vlc_threadvar_get (thread_key);
+    struct vlc_thread *th = (void *)self;
 
     if (likely(th != NULL))
         th->killed = true;
-
-    (void)dummy;
 }
 
 void vlc_cancel (vlc_thread_t th)
 {
 #ifndef UNDER_CE
-    QueueUserAPC (vlc_cancel_self, th->id, 0);
+    QueueUserAPC (vlc_cancel_self, th->id, (uintptr_t)th);
 #else
     SetEvent (th->cancel_event);
 #endif

_______________________________________________
vlc-commits mailing list
[email protected]
http://mailman.videolan.org/listinfo/vlc-commits

Reply via email to