| @@ -39,6 +39,11 @@ | |||||
| #define ff_mutex_unlock pthread_mutex_unlock | #define ff_mutex_unlock pthread_mutex_unlock | ||||
| #define ff_mutex_destroy pthread_mutex_destroy | #define ff_mutex_destroy pthread_mutex_destroy | ||||
| #define AVOnce pthread_once_t | |||||
| #define AV_ONCE_INIT PTHREAD_ONCE_INIT | |||||
| #define ff_thread_once(control, routine) pthread_once(control, routine) | |||||
| #else | #else | ||||
| #define AVMutex char | #define AVMutex char | ||||
| @@ -48,6 +53,18 @@ | |||||
| #define ff_mutex_unlock(mutex) (0) | #define ff_mutex_unlock(mutex) (0) | ||||
| #define ff_mutex_destroy(mutex) (0) | #define ff_mutex_destroy(mutex) (0) | ||||
| #define AVOnce char | |||||
| #define AV_ONCE_INIT 0 | |||||
| static inline int ff_thread_once(char *control, void (*routine)(void)) | |||||
| { | |||||
| if (!*control) { | |||||
| routine(); | |||||
| *control = 1; | |||||
| } | |||||
| return 0; | |||||
| } | |||||
| #endif | #endif | ||||
| #endif /* AVUTIL_THREAD_H */ | #endif /* AVUTIL_THREAD_H */ | ||||