I understand, i have to synchronize access...
Coming from another language i had some guarantees on some assignments 
mostly int. A string might be a issue here of course...
I have to refactor my code in order to make is safe.

thanks.

On Sunday, May 26, 2019 at 6:13:56 PM UTC+3, Jan Mercl wrote:
>
> On Sun, May 26, 2019 at 4:03 PM Sotirios Mantziaris 
> <[email protected] <javascript:>> wrote: 
>
> > Let's assume that the string field Name has the value `Mr. Smith` and we 
> change this to  `Mr. Anderson` in the goroutine, what are the possible 
> values that i could bet on a read? 
> > 
> > If these are either `Mr. Smith` or `Mr. Anderson` i am very ok with that 
> because i want the value to be eventually consistent. 
>
> That would be the only possible outcomes iff a multi word value is 
> updated atomically. 
>
> > If there is another possible outcome then i need to synchronize the 
> access and refactor a lot. 
>
> Any outcome is possible with a data race. One of those that are often 
> seen in practices is, obviously, `Mr. Ander`. Another is that the app 
> will segfault. Also, the Go memory model does not guarantee one 
> goroutine will _ever_ observe a change made by a different goroutine 
> concurrently but without proper synchronization. The compiler if free 
> to consider all values not explicitly mutated by a code path to never 
> change without synchronization. 
>
> tl;dr: There's no safe way to ignore a data race. 
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/9abf1f2b-00bf-4346-b429-e40617997237%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to