threads: Check w32threads dependencies at the configure stage
authorDiego Biurrun <diego@biurrun.de>
Wed, 18 Dec 2013 21:29:25 +0000 (22:29 +0100)
committerDiego Biurrun <diego@biurrun.de>
Wed, 19 Feb 2014 14:12:37 +0000 (15:12 +0100)
Also add warning comment about threading implementations without matching
atomics implementation to the atomics fallback implementation.

configure
libavutil/atomic.c

index 292da47..841c39a 100755 (executable)
--- a/configure
+++ b/configure
@@ -1606,6 +1606,7 @@ atomics_gcc_if="sync_val_compare_and_swap"
 atomics_suncc_if="atomic_cas_ptr machine_rw_barrier"
 atomics_win32_if="MemoryBarrier"
 atomics_native_if_any="$ATOMICS_LIST"
+w32threads_deps="atomics_native"
 threads_if_any="$THREADS_LIST"
 
 # subsystems
index e4fa957..8374039 100644 (file)
@@ -97,8 +97,11 @@ void *avpriv_atomic_ptr_cas(void * volatile *ptr, void *oldval, void *newval)
     return *ptr;
 }
 
-#else
+#else /* HAVE_THREADS */
 
+/* This should never trigger, unless a new threading implementation
+ * without correct atomics dependencies in configure or a corresponding
+ * atomics implementation is added. */
 #error "Threading is enabled, but there is no implementation of atomic operations available"
 
 #endif /* HAVE_PTHREADS */