[vlc-devel] [RFCv2] Thread cancellation on WinCE
    Rémi Denis-Courmont 
    rem at videolan.org
       
    Thu Nov 20 16:14:45 CET 2008
    
    
  
On Thursday 20 November 2008 11:23:21 Pierre Ynard, you wrote:
> +#  define VLC_CANCEL_INIT { NULL, true, false, NULL }
NULL is the error case for HANDLE?
> +static DWORD vlc_cancelable_wait (DWORD count, const HANDLE *handles,
> +                                  DWORD delay)
> +{
> +    vlc_cancel_t *nfo = vlc_threadvar_get (&cancel_key);
> +    if (nfo == NULL)
> +    {
> +        /* Main thread - cannot be cancelled anyway */
> +        return WaitForMultipleObjects (count, handles, FALSE, delay);
> +    }
If you collapsed vlc_cancelable_wait into WaitForMultipleObjectsEx, you could 
factor that, and the non alertable case, right?
> +    HANDLE new_handles[count + 1];
> +    if (count > 0)
This check is not needed.
> +    /* We do not support the bWaitAll case */
> +    if (bAlertable && ! bWaitAll)
Should probably assert(!(bAlertable && bWaitAll)).
Anyway, looks pretty good to me.
-- 
Rémi Denis-Courmont
    
    
More information about the vlc-devel
mailing list