[FFmpeg-devel] [PATCH] avutil/crc: always use precalculated CRC tables for known polynomials

Michael Niedermayer michael at niedermayer.cc
Tue Oct 24 04:24:25 EEST 2017


On Tue, Oct 24, 2017 at 01:39:03AM +0100, Mark Thompson wrote:
> On 24/10/17 00:52, Michael Niedermayer wrote:
> > Hi
> > 
> > On Mon, Oct 23, 2017 at 04:43:19PM +0100, Mark Thompson wrote:
> >> On 23/10/17 03:56, Michael Niedermayer wrote:
> >>> the initialization should be thread safe as it never writes a different
> >>> value in the same spot
> >>
> >> This is not true; please be very careful with assumptions like this.
> >>
> >> The C standard calls this a data race and it is undefined behaviour.
> > 
> > Thats interresting, we definitly do not want undefined behavior
> > can you quote the relevant parts of the C standard
> > which make writing the same value, a data race ?
> > 
> > I was not aware of this if its true.
> > Also i dont immedeatly see this in the "latest" draft i am looking at
> > atm
> > 
> > What i see is this:
> > 4 Two expression evaluations conflict if one of them modifies a memory location and the
> >   other one reads or modifies the same memory location.
> > ...
> > 25 The execution of a program contains a data race if it contains two conflicting actions in
> >    different threads, at least one of which is not atomic, and neither happens before the
> >    other. Any such data race results in undefined behavior.
> > 
> > This seems carefully worded to not include writing the same value.
> > As "modification" implies change which does not occur when writing the
> > same value.
> 
> All writes are modifications.
> 
> See section 3.1 note 2:
> """
> 3 NOTE 2   "Modify"€™ includes the case where the new value being stored is the same as the previous value.
> """

That resolves the difference between our interpretation

thanks

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Elect your leaders based on what they did after the last election, not
based on what they say before an election.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20171024/b822d60c/attachment.sig>


More information about the ffmpeg-devel mailing list