diff options
Diffstat (limited to 'src/pkg/runtime/malloc.goc')
| -rw-r--r-- | src/pkg/runtime/malloc.goc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/pkg/runtime/malloc.goc b/src/pkg/runtime/malloc.goc index 5326551fee..7e691fe9c8 100644 --- a/src/pkg/runtime/malloc.goc +++ b/src/pkg/runtime/malloc.goc @@ -278,6 +278,8 @@ runtime·freemcache(MCache *c) void runtime·purgecachedstats(MCache *c) { + int32 i; + // Protected by either heap or GC lock. mstats.heap_alloc += c->local_cachealloc; c->local_cachealloc = 0; @@ -293,6 +295,12 @@ runtime·purgecachedstats(MCache *c) c->local_alloc= 0; mstats.total_alloc += c->local_total_alloc; c->local_total_alloc= 0; + for(i=0; i<nelem(c->local_by_size); i++) { + mstats.by_size[i].nmalloc += c->local_by_size[i].nmalloc; + c->local_by_size[i].nmalloc = 0; + mstats.by_size[i].nfree += c->local_by_size[i].nfree; + c->local_by_size[i].nfree = 0; + } } uintptr runtime·sizeof_C_MStats = sizeof(MStats); |
