Changeset 0965ae7d651c32b206ed7aa92243d7fa497145c9

Show
Ignore:
Timestamp:
28/08/08 23:03:12 (3 months ago)
Author:
Rémi Denis-Courmont <rdenis@simphalempin.com>
git-committer:
Rémi Denis-Courmont <rdenis@simphalempin.com> 1219957392 +0300
git-parent:

[1014a2aa09d4c4a529407b221676f9138416660b]

git-author:
Rémi Denis-Courmont <rdenis@simphalempin.com> 1219957028 +0300
Message:

vlc_join: check for deadlock

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • include/vlc_threads.h

    r0a908c0 r0965ae7  
    180180VLC_EXPORT( int, vlc_clone, (vlc_thread_t *, void * (*) (void *), void *, int) ); 
    181181VLC_EXPORT( void, vlc_cancel, (vlc_thread_t) ); 
    182 VLC_EXPORT( int, vlc_join, (vlc_thread_t, void **) ); 
     182VLC_EXPORT( void, vlc_join, (vlc_thread_t, void **) ); 
    183183VLC_EXPORT (void, vlc_control_cancel, (int cmd, ...)); 
    184184 
  • src/misc/threads.c

    r0bdeef7 r0965ae7  
    622622 * @return 0 on success, a standard error code otherwise. 
    623623 */ 
    624 int vlc_join (vlc_thread_t handle, void **result) 
    625 
    626 #if defined( LIBVLC_USE_PTHREAD ) 
    627     return pthread_join (handle, result); 
     624void vlc_join (vlc_thread_t handle, void **result) 
     625
     626#if defined( LIBVLC_USE_PTHREAD ) 
     627    int val = pthread_join (handle, result); 
     628    if (val) 
     629        vlc_pthread_fatal ("joining thread", val, __FILE__, __LINE__); 
    628630 
    629631#elif defined( UNDER_CE ) || defined( WIN32 ) 
     
    637639        *result = handle->data; 
    638640    free (handle); 
    639     return 0; 
    640641 
    641642#elif defined( HAVE_KERNEL_SCHEDULER_H ) 
    642643    int32_t exit_value; 
    643     ret = (B_OK == wait_for_thread( p_priv->thread_id, &exit_value )); 
    644     if( !ret && result ) 
     644    int val = (B_OK == wait_for_thread( p_priv->thread_id, &exit_value )); 
     645    if( !val && result ) 
    645646        *result = (void *)exit_value; 
    646647 
    647     return ret; 
    648648#endif 
    649649}