Commit 779d3cdf authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

vlc_cancel: POSIX thread cancellation

parent a332d4e1
...@@ -177,6 +177,7 @@ VLC_EXPORT( int, __vlc_thread_set_priority, ( vlc_object_t *, const char *, int ...@@ -177,6 +177,7 @@ VLC_EXPORT( int, __vlc_thread_set_priority, ( vlc_object_t *, const char *, int
VLC_EXPORT( void, __vlc_thread_join, ( vlc_object_t *, const char *, int ) ); VLC_EXPORT( void, __vlc_thread_join, ( vlc_object_t *, const char *, int ) );
VLC_EXPORT( int, vlc_clone, (vlc_thread_t *, void * (*) (void *), void *, int) ); VLC_EXPORT( int, vlc_clone, (vlc_thread_t *, void * (*) (void *), void *, int) );
VLC_EXPORT( void, vlc_cancel, (vlc_thread_t) );
VLC_EXPORT( int, vlc_join, (vlc_thread_t, void **) ); VLC_EXPORT( int, vlc_join, (vlc_thread_t, void **) );
#define vlc_thread_ready vlc_object_signal #define vlc_thread_ready vlc_object_signal
......
...@@ -415,6 +415,7 @@ vlc_b64_decode_binary ...@@ -415,6 +415,7 @@ vlc_b64_decode_binary
vlc_b64_decode_binary_to_buffer vlc_b64_decode_binary_to_buffer
vlc_b64_encode vlc_b64_encode
vlc_b64_encode_binary vlc_b64_encode_binary
vlc_cancel
VLC_Changeset VLC_Changeset
vlc_clone vlc_clone
VLC_CompileBy VLC_CompileBy
......
...@@ -559,6 +559,20 @@ int vlc_clone (vlc_thread_t *p_handle, void * (*entry) (void *), void *data, ...@@ -559,6 +559,20 @@ int vlc_clone (vlc_thread_t *p_handle, void * (*entry) (void *), void *data,
return ret; return ret;
} }
/**
* Marks a thread as cancelled. Next time the target thread reaches a
* cancellation point (while not having disabled cancellation), it will
* run its cancellation cleanup handler, the thread variable destructors, and
* terminate. vlc_join() must be used afterward regardless of a thread being
* cancelled or not.
*/
void vlc_cancel (vlc_thread_t thread_id)
{
#if defined (LIBVLC_USE_PTHREAD)
pthread_cancel (thread_id);
#endif
}
/** /**
* Waits for a thread to complete (if needed), and destroys it. * Waits for a thread to complete (if needed), and destroys it.
* @param handle thread handle * @param handle thread handle
...@@ -814,3 +828,4 @@ error: ...@@ -814,3 +828,4 @@ error:
p_priv->b_thread = false; p_priv->b_thread = false;
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment