static int threading_init( void ) { #if PTW32_STATIC_LIB /* if static pthread-win32 is already initialized, then do nothing */ if( ptw32_processInitialized ) return 0; if( !pthread_win32_process_attach_np() ) return -1; #else if( x264_win32_threading_init() ) return -1; #endif /* register cleanup to run at process termination */ atexit( threading_destroy ); return 0; }
int x264_threading_init( void ) { /* if already init, then do nothing */ if( InterlockedCompareExchange( &x264_threading_is_init, 1, 0 ) ) return 0; #if PTW32_STATIC_LIB /* if static pthread-win32 is already initialized, then do nothing */ if( ptw32_processInitialized ) return 0; if( !pthread_win32_process_attach_np() ) return -1; #else if( x264_win32_threading_init() ) return -1; #endif /* register cleanup to run at process termination */ atexit( x264_threading_destroy ); return 0; }