void runtime_initfintab() { int32 i; for(i=0; i<TABSZ; i++) runtime_initlock(&fintab[i]); }
// Initialize a single central free list. void runtime_MCentral_Init(MCentral *c, int32 sizeclass) { runtime_initlock(c); c->sizeclass = sizeclass; runtime_MSpanList_Init(&c->nonempty); runtime_MSpanList_Init(&c->empty); }
// Initialize the heap; fetch memory using alloc. void runtime_MHeap_Init(MHeap *h, void *(*alloc)(uintptr)) { uint32 i; runtime_initlock(h); runtime_FixAlloc_Init(&h->spanalloc, sizeof(MSpan), alloc, RecordSpan, h); runtime_FixAlloc_Init(&h->cachealloc, sizeof(MCache), alloc, nil, nil); // h->mapcache needs no init for(i=0; i<nelem(h->free); i++) runtime_MSpanList_Init(&h->free[i]); runtime_MSpanList_Init(&h->large); for(i=0; i<nelem(h->central); i++) runtime_MCentral_Init(&h->central[i], i); }
void runtime_initfintab() { runtime_initlock(&finlock); }