Making lock much less aggressive, fixes multiple uploads blocking

This commit is contained in:
Frederick F. Kautz IV 2015-04-26 20:08:37 -07:00
parent d11803b125
commit a974e4d7c7

View File

@ -197,7 +197,6 @@ func (memory *memoryDriver) CreateObject(bucket, key, contentType, expectedMD5Su
contentType = strings.TrimSpace(contentType) contentType = strings.TrimSpace(contentType)
memory.lock.Lock()
if strings.TrimSpace(expectedMD5Sum) != "" { if strings.TrimSpace(expectedMD5Sum) != "" {
expectedMD5SumBytes, err := base64.StdEncoding.DecodeString(strings.TrimSpace(expectedMD5Sum)) expectedMD5SumBytes, err := base64.StdEncoding.DecodeString(strings.TrimSpace(expectedMD5Sum))
if err != nil { if err != nil {
@ -246,6 +245,7 @@ func (memory *memoryDriver) CreateObject(bucket, key, contentType, expectedMD5Su
Md5: md5Sum, Md5: md5Sum,
Size: int64(totalLength), Size: int64(totalLength),
} }
memory.lock.Lock()
if _, ok := memory.objectMetadata[objectKey]; ok == true { if _, ok := memory.objectMetadata[objectKey]; ok == true {
memory.lock.Unlock() memory.lock.Unlock()
return iodine.New(drivers.ObjectExists{Bucket: bucket, Object: key}, nil) return iodine.New(drivers.ObjectExists{Bucket: bucket, Object: key}, nil)