[gst-devel] [PATCH] SMP race condition in gstatomic.h
David I. Lehn
dlehn at vt.edu
Thu Sep 5 09:04:04 CEST 2002
* Cameron Hutchison <camh+gst at xdna.net> [20020905 04:09]:
> I've been banging my head against a bug in gstreamer for the last few
> days (bug #92261). This bug can be triggered by the command:
> $ gst-launch sinesrc ! { queue ! fakesink }
>
> After a random number of iterations an assertion is violated when trying
> to unref a buffer.
>
> The problem is that the SWAP functions/macros in gstatomic.h are not
> being compiled for SMP. That header uses the __SMP__ conditional macro,
> but nothing sets that macro.
>
> Following the method used in <asm/atomic.h>, I've changed __SMP__ to
> CONFIG_SMP (defined in <linux/config.h>). This fixes the problem
> ("lock ;" now gets included in the asm code).
>
Good catch. However, I'm not sure CONFIG_SMP is portable enough between
*BSDs and Linux and Hurd and win32 and whatever else this code might run
on. Perhaps we need a configure check of some sort that we can force
things to build for SMP.
-dave
More information about the gstreamer-devel
mailing list