Hopefully someone can explain where my understanding of dataraces is wrong.

As an example, I'd like to use the appengine cloudstorage example: 
https://cloud.google.com/appengine/docs/go/googlecloudstorageclient/app-engine-cloud-storage-sample#specifying_the_cloud_storage_bucket

When a web request comes in, it checks if the bucketname is empty.  If it 
is, it sets the bucketname using the result from 
file.DefaultBucketName(ctx).  It all seems like a good idea, but I'm 
confused because the bucket name variable is accessed by multiple 
goroutines.  What if on startup, two requests come in at roughly the same 
time?  Would we possibly have two goroutines reading and writing to the 
same variable?  Does the appengine guarantee that the first request 
finishes before any other starts?  Or is this somehow a minor unimportant 
datarace, as it is unlikely to occur and even if it does, 
file.DefaultBucketName returns the same value... so it doesn't matter that 
it gets called twice and sets the bucket name twice?

Thanks and apologies for my confusion.

-- 
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 golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to