Hi, On Fri, Oct 23, 2015 at 12:48 AM, Dale Curtis <dalecur...@chromium.org> wrote:
> On Wed, Oct 21, 2015 at 6:52 PM, Dale Curtis <dalecur...@chromium.org> > wrote: > > > On Tue, Oct 20, 2015 at 11:50 PM, Michael Niedermayer < > > mich...@niedermayer.cc> wrote: > >> > >> the last element to be written should be checked, so that if > >> initialization is done by 2 threads at the same time, neither can > >> return from this function without initialization having finished > >> > >> also the race detectors are broken if they complain about cases where > >> a variable that has value a is set to value a, that cannot be part of > >> a race, not even if a is written byte per byte instead of atomically > >> unless theres something iam missing > >> Is this something that can be fixed or disabled on the side of the > >> race detectors? > >> It might reduce false positives in FFmpeg and potentially other > >> tools. > >> > > > > We can suppress it, which I think is more reasonable then the overhead > > it'd take to make this "race" go away. I notice the sin tables are > > initialized within the fft context so there's no "race." Is there a > reason > > the cosine tables aren't done this way? > > > > Actually it looks like sin may suffer from the same issues -- it doesn't > make a copy like I was thinking it did. One of the TSAN folk detailed why > suppression isn't a good idea here > https://codereview.chromium.org/1412123007/#msg7 -- which roughly says we > can't rely on the compiler to do the right thing here. > > What are your thoughts about using ff_thread_once() to build the full sin > and cos tables all at once? That sounds right. The reason that wasn't initially done is probably because cos/sin tables existed before ff_thread_once did. Ronald _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel