mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-12-08 06:09:50 +00:00
pthread_t is currently defined as a struct, which gets placed into caller's memory and filled by pthread_create() (which accepts a pthread_t*). The problem with this approach is that pthread_join() accepts pthread_t itself rather than a pointer to it, so it gets a _copy_ of this structure. This causes non-deterministic failures of pthread_join() to produce the correct return value - depending on whether the thread already finished before pthread_join() is called (and thus the copy contains the correct value), or not (then it contains 0). Change the definition of pthread_t into a pointer to a struct, that gets malloced by pthread_create() and freed by pthread_join(). Fixes random failures of fate-ffmpeg-error-rate-fail on Windows after |
||
|---|---|---|
| .. | ||
| aix | ||
| atomics | ||
| cuda | ||
| dispatch_semaphore | ||
| djgpp | ||
| float | ||
| msvcrt | ||
| solaris | ||
| stdbit | ||
| windows | ||
| getopt.c | ||
| os2threads.h | ||
| strtod.c | ||
| va_copy.h | ||
| w32dlfcn.h | ||
| w32pthreads.h | ||