mirror of https://github.com/minio/minio.git
Merge pull request #624 from vadmeste/pr_out_protect_exported_memory_object_api_by_a_mutex
Protect the exported method Delete() by a lock
This commit is contained in:
commit
122d67625f
|
@ -128,7 +128,7 @@ func (r *Cache) Set(key string, value interface{}) bool {
|
|||
// remove random key if only we reach the maxSize threshold
|
||||
for key := range r.items {
|
||||
for (r.currentSize + valueLen) > r.maxSize {
|
||||
r.Delete(key)
|
||||
r.doDelete(key)
|
||||
}
|
||||
break
|
||||
}
|
||||
|
@ -145,13 +145,19 @@ func (r *Cache) Expire() {
|
|||
defer r.Unlock()
|
||||
for key := range r.items {
|
||||
if !r.isValid(key) {
|
||||
r.Delete(key)
|
||||
r.doDelete(key)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Delete deletes a given key if exists
|
||||
func (r *Cache) Delete(key string) {
|
||||
r.Lock()
|
||||
defer r.Unlock()
|
||||
r.doDelete(key)
|
||||
}
|
||||
|
||||
func (r *Cache) doDelete(key string) {
|
||||
if _, ok := r.items[key]; ok {
|
||||
r.currentSize -= uint64(len(r.items[key].([]byte)))
|
||||
delete(r.items, key)
|
||||
|
|
|
@ -212,7 +212,7 @@ func (memory *memoryDriver) cleanupMultiparts(bucket, key, uploadID string) {
|
|||
defer memory.lock.Unlock()
|
||||
for i := 1; i <= memory.storedBuckets[bucket].multiPartSession[key].totalParts; i++ {
|
||||
objectKey := bucket + "/" + getMultipartKey(key, uploadID, i)
|
||||
memory.multiPartObjects.Delete(objectKey)
|
||||
memory.multiPartObjects.doDelete(objectKey)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue