aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/util/mem/slot_pool.go12
1 files changed, 11 insertions, 1 deletions
diff --git a/weed/util/mem/slot_pool.go b/weed/util/mem/slot_pool.go
index e6680d3cb..d5a55f23f 100644
--- a/weed/util/mem/slot_pool.go
+++ b/weed/util/mem/slot_pool.go
@@ -1,6 +1,10 @@
package mem
-import "sync"
+import (
+ "github.com/chrislusf/seaweedfs/weed/glog"
+ "sync"
+ "sync/atomic"
+)
var pools []*sync.Pool
@@ -34,11 +38,17 @@ func getSlotPool(size int) *sync.Pool {
return pools[index]
}
+var total int64
+
func Allocate(size int) []byte {
+ newVal := atomic.AddInt64(&total, 1)
+ glog.V(4).Infof("++> %d", newVal)
slab := *getSlotPool(size).Get().(*[]byte)
return slab[:size]
}
func Free(buf []byte) {
+ newVal := atomic.AddInt64(&total, -1)
+ glog.V(4).Infof("--> %d", newVal)
getSlotPool(cap(buf)).Put(&buf)
}