On Sunday, 11 May 2014 at 07:31:10 UTC, FreeSlave wrote:
On Friday, 9 May 2014 at 21:42:14 UTC, Vlad Levenfeld wrote:
Is this still the case if the method is const or pure?

Const methods still require synchronization, because other threads may change some data, needed by const method while method is executed, and then you may get wrong results.

Consider:

class Point
{
public:
    float x;
    float y;


}

I send before I end(

class Point
{
public:
    float x;
    float y;

    Tuple!(float, float) getLengthAndAngle() const
    {
        float l = sqrt(x*x+y*y);
        //other thread change x or y
        float a = atan2(x, y);
        return tuple(l, a);
    }
}

Reply via email to