From: RĂ©mi Denis-Courmont Date: Sat, 9 Aug 2008 16:41:34 +0000 (+0300) Subject: Move stuff around X-Git-Tag: 1.0.0-pre1~3772 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=9fda9767293f9e46f8129f6e553d94ce2f847cd0;p=vlc Move stuff around --- diff --git a/include/vlc_threads.h b/include/vlc_threads.h index 8796d6ccae..63e61d126e 100644 --- a/include/vlc_threads.h +++ b/include/vlc_threads.h @@ -179,6 +179,15 @@ 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( void, vlc_cancel, (vlc_thread_t) ); VLC_EXPORT( int, vlc_join, (vlc_thread_t, void **) ); +VLC_EXPORT (void, vlc_control_cancel, (int cmd, ...)); + +#ifndef LIBVLC_USE_PTHREAD +enum { + VLC_SAVE_CANCEL, + VLC_RESTORE_CANCEL, + VLC_TEST_CANCEL, +}; +#endif #define vlc_thread_ready vlc_object_signal @@ -262,6 +271,51 @@ static inline void __vlc_mutex_unlock( const char * psz_file, int i_line, #define vlc_mutex_destroy( P_MUTEX ) \ __vlc_mutex_destroy( __FILE__, __LINE__, P_MUTEX ) +/** + * Save the cancellation state and disable cancellation for the calling thread. + * This function must be called before entering a piece of code that is not + * cancellation-safe. + * @return Previous cancellation state (opaque value). + */ +static inline int vlc_savecancel (void) +{ + int state; +#if defined (LIBVLC_USE_PTHREAD) + (void) pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &state); +#else + vlc_control_cancel (VLC_SAVE_CANCEL, &state); +#endif + return state; +} + +/** + * Restore the cancellation state for the calling thread. + * @param state previous state as returned by vlc_savecancel(). + * @return Nothing, always succeeds. + */ +static inline void vlc_restorecancel (int state) +{ +#if defined (LIBVLC_USE_PTHREAD) + (void) pthread_setcancelstate (state, NULL); +#else + vlc_control_cancel (VLC_RESTORE_CANCEL, state); +#endif +} + +/** + * Issues an explicit deferred cancellation point. + * This has no effect if thread cancellation is disabled. + * This can be called when there is a rather slow non-sleeping operation. + */ +static inline void vlc_testcancel (void) +{ +#if defined (LIBVLC_USE_PTHREAD) + pthread_testcancel (); +#else + vlc_control_cancel (VLC_TEST_CANCEL); +#endif +} + /***************************************************************************** * vlc_cond_init: initialize a condition *****************************************************************************/ @@ -589,61 +643,6 @@ static inline void barrier (void) #endif } -#ifndef LIBVLC_USE_PTHREAD -enum { - VLC_SAVE_CANCEL, - VLC_RESTORE_CANCEL, - VLC_TEST_CANCEL, -}; -#endif - -VLC_EXPORT (void, vlc_control_cancel, (int cmd, ...)); - -/** - * Save the cancellation state and disable cancellation for the calling thread. - * This function must be called before entering a piece of code that is not - * cancellation-safe. - * @return Previous cancellation state (opaque value). - */ -static inline int vlc_savecancel (void) -{ - int state; -#if defined (LIBVLC_USE_PTHREAD) - (void) pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &state); -#else - vlc_control_cancel (VLC_SAVE_CANCEL, &state); -#endif - return state; -} - -/** - * Restore the cancellation state for the calling thread. - * @param state previous state as returned by vlc_savecancel(). - * @return Nothing, always succeeds. - */ -static inline void vlc_restorecancel (int state) -{ -#if defined (LIBVLC_USE_PTHREAD) - (void) pthread_setcancelstate (state, NULL); -#else - vlc_control_cancel (VLC_RESTORE_CANCEL, state); -#endif -} - -/** - * Issues an explicit deferred cancellation point. - * This has no effect if thread cancellation is disabled. - * This can be called when there is a rather slow non-sleeping operation. - */ -static inline void vlc_testcancel (void) -{ -#if defined (LIBVLC_USE_PTHREAD) - pthread_testcancel (); -#else - vlc_control_cancel (VLC_TEST_CANCEL); -#endif -} - /***************************************************************************** * vlc_thread_create: create a thread *****************************************************************************/