From f944a8b6174bf17e2c57caa386bd199944a1f6c8 Mon Sep 17 00:00:00 2001 From: Brett Hazen Date: Thu, 18 Dec 2014 08:59:49 -0700 Subject: [PATCH] Atomically create a new RiakBucket to avoid race condition in duplication --- riak/client/__init__.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/riak/client/__init__.py b/riak/client/__init__.py index 7944d8fb..1d7cfa68 100644 --- a/riak/client/__init__.py +++ b/riak/client/__init__.py @@ -267,12 +267,8 @@ def bucket(self, name, bucket_type='default'): raise TypeError('bucket_type must be a string ' 'or riak.bucket.BucketType') - if (bucket_type, name) in self._buckets: - return self._buckets[(bucket_type, name)] - else: - bucket = RiakBucket(self, name, bucket_type) - self._buckets[(bucket_type, name)] = bucket - return bucket + return self._buckets.setdefault((bucket_type, name), + RiakBucket(self, name, bucket_type)) def bucket_type(self, name): """