> 
> Because I removed hist->hvalue.counters[2] where we stored total number of 
> executions.
> It's back again so that _atomic suffix version makes sense again.

OK and we do not care about race conditions on the other two counters?
> 
> After we discussed that I decided to live with all counters in memory. Reason 
> is that
> in write_one_data we would have to allocate temporary buffers and fill up 
> them here:
> 
>    304            tag = gcov_read_unsigned ();
>    305            length = gcov_read_unsigned ();
>    306            if (tag != GCOV_TAG_FOR_COUNTER (t_ix)
>    307                || length != GCOV_TAG_COUNTER_LENGTH (ci_ptr->num))
>    308              goto read_mismatch;
>    309            (*merge) (ci_ptr->values, ci_ptr->num);
>    310            ci_ptr++;
> 
> It would be quite nasty and I would like to mitigate libgcov profile crashes.

Hmm, I see, if code was organized to directly write the output, it would
be easier.  I guess it is not overly important.

Patch is OK
Honza

Reply via email to