Home | History | Annotate | Download | only in runtime

Lines Matching refs:block

20 	// can be accessed without locks, but adding a block or
60 // Do we need to add a block?
62 var block *gcSweepBlock
67 block = (*gcSweepBlock)(atomic.Loadp(blockp))
69 // Add a new block to the spine, potentially growing
104 // Allocate a new block and add it to the spine.
105 block = (*gcSweepBlock)(persistentalloc(unsafe.Sizeof(gcSweepBlock{}), sys.CacheLineSize, &memstats.gc_sys))
108 atomic.StorepNoWB(blockp, unsafe.Pointer(block))
113 // We have a block. Insert the span.
114 block.spans[bottom] = s
127 // There are no concurrent spine or block modifications during
131 block := *blockp
132 s := block.spans[bottom]
133 // Clear the pointer for block(i).
134 block.spans[bottom] = nil
141 // in some block in the range [0, numBlocks()), assuming there are no
148 // block returns the spans in the i'th block of buffer b. block is
150 func (b *gcSweepBuf) block(i int) []*mspan {
154 throw("block index out of range")
157 // Get block i.
160 block := (*gcSweepBlock)(atomic.Loadp(blockp))
162 // Slice the block if necessary.
167 spans = block.spans[:]
169 spans = block.spans[:bottom]