mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-20 11:30:18 +00:00
some fix
This commit is contained in:
parent
f93aefdbe5
commit
381e2d5b9a
@ -11,7 +11,6 @@ typedef struct pk_ManagedHeap{
|
||||
|
||||
int gc_threshold;
|
||||
int gc_counter;
|
||||
int gc_lock_counter;
|
||||
pk_VM* vm;
|
||||
|
||||
void (*_gc_on_delete)(pk_VM*, PyObject*);
|
||||
@ -21,9 +20,6 @@ typedef struct pk_ManagedHeap{
|
||||
void pk_ManagedHeap__ctor(pk_ManagedHeap* self, pk_VM* vm);
|
||||
void pk_ManagedHeap__dtor(pk_ManagedHeap* self);
|
||||
|
||||
void pk_ManagedHeap__push_lock(pk_ManagedHeap* self);
|
||||
void pk_ManagedHeap__pop_lock(pk_ManagedHeap* self);
|
||||
|
||||
void pk_ManagedHeap__collect_if_needed(pk_ManagedHeap* self);
|
||||
int pk_ManagedHeap__collect(pk_ManagedHeap* self);
|
||||
int pk_ManagedHeap__sweep(pk_ManagedHeap* self);
|
||||
|
@ -8,7 +8,6 @@ void pk_ManagedHeap__ctor(pk_ManagedHeap *self, pk_VM *vm){
|
||||
|
||||
self->gc_threshold = PK_GC_MIN_THRESHOLD;
|
||||
self->gc_counter = 0;
|
||||
self->gc_lock_counter = 0;
|
||||
self->vm = vm;
|
||||
|
||||
self->_gc_on_delete = NULL;
|
||||
@ -28,17 +27,8 @@ void pk_ManagedHeap__dtor(pk_ManagedHeap *self){
|
||||
c11_vector__dtor(&self->gen);
|
||||
}
|
||||
|
||||
void pk_ManagedHeap__push_lock(pk_ManagedHeap *self){
|
||||
self->gc_lock_counter++;
|
||||
}
|
||||
|
||||
void pk_ManagedHeap__pop_lock(pk_ManagedHeap *self){
|
||||
self->gc_lock_counter--;
|
||||
}
|
||||
|
||||
void pk_ManagedHeap__collect_if_needed(pk_ManagedHeap *self){
|
||||
if(self->gc_counter < self->gc_threshold) return;
|
||||
if(self->gc_lock_counter > 0) return;
|
||||
self->gc_counter = 0;
|
||||
pk_ManagedHeap__collect(self);
|
||||
self->gc_threshold = self->gen.count * 2;
|
||||
@ -48,7 +38,6 @@ void pk_ManagedHeap__collect_if_needed(pk_ManagedHeap *self){
|
||||
}
|
||||
|
||||
int pk_ManagedHeap__collect(pk_ManagedHeap *self){
|
||||
assert(self->gc_lock_counter == 0);
|
||||
pk_ManagedHeap__mark(self);
|
||||
int freed = pk_ManagedHeap__sweep(self);
|
||||
return freed;
|
||||
|
Loading…
x
Reference in New Issue
Block a user