提交 04cb343a 创建 作者: Silas Boyd-Wickizer's avatar Silas Boyd-Wickizer

Merge branch 'scale-amd64' into wq

...@@ -23,12 +23,11 @@ static Header *freep; ...@@ -23,12 +23,11 @@ static Header *freep;
static struct uspinlock lock; static struct uspinlock lock;
void static void
free(void *ap) __free(void *ap)
{ {
Header *bp, *p; Header *bp, *p;
acquire(&lock);
bp = (Header*)ap - 1; bp = (Header*)ap - 1;
for(p = freep; !(bp > p && bp < p->s.ptr); p = p->s.ptr) for(p = freep; !(bp > p && bp < p->s.ptr); p = p->s.ptr)
if(p >= p->s.ptr && (bp > p || bp < p->s.ptr)) if(p >= p->s.ptr && (bp > p || bp < p->s.ptr))
...@@ -44,6 +43,13 @@ free(void *ap) ...@@ -44,6 +43,13 @@ free(void *ap)
} else } else
p->s.ptr = bp; p->s.ptr = bp;
freep = p; freep = p;
}
void
free(void *ap)
{
acquire(&lock);
__free(ap);
release(&lock); release(&lock);
} }
...@@ -60,7 +66,7 @@ morecore(u32 nu) ...@@ -60,7 +66,7 @@ morecore(u32 nu)
return 0; return 0;
hp = (Header*)p; hp = (Header*)p;
hp->s.size = nu; hp->s.size = nu;
free((void*)(hp + 1)); __free((void*)(hp + 1));
return freep; return freep;
} }
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论