> Not sure what you mean however.

The characters in the original message were
        * global_array[0] *= value1;
        * global_array[1] *= value2;
except there were no spaces and no semicolons.  This is unclear.
Why the leading star '*' before "global_array"?
My mail reader interpreted this in "Simple HTML" as asking for bold font
with straight assignment (no "multiply in place"), as if the HTML markup:
        <b>global_array[0]</b> = value1;
        <b>global_array[1]</b> = value2;
As such, there are no fetch operations, therefore no races.
If helgrind complains, then that is a bug in helgrind.


> If Thread1 did  a read(global_array[0]) and Thread2 did a 
> write(global_array[1]), then there is still no race. 

Again, this is unclear.  Do you intend those two operations to be a new
separate example, or do you intend to append those operations to the
original scenario?  Please write (in C code as text, not HTML) the complete,
exact code that you mean.

If those two operations are a separate, complete scenario, then Yes,
there still is no race.  A race requires a write and a read of the
same location.  The locations of the write and the read differ,
so there can be no race.  If helgrind complains, then that is a bug in helgrind.

-- 

------------------------------------------------------------------------------
Achieve unprecedented app performance and reliability
What every C/C++ and Fortran developer should know.
Learn how Intel has extended the reach of its next-generation tools
to help boost performance applications - inlcuding clusters.
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
Valgrind-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to