blueloveTH 1 năm trước cách đây
mục cha
commit
381e2d5b9a

+ 0 - 4
include/pocketpy/interpreter/gc.h

@@ -11,7 +11,6 @@ typedef struct pk_ManagedHeap{
 
 
     int gc_threshold;
     int gc_threshold;
     int gc_counter;
     int gc_counter;
-    int gc_lock_counter;
     pk_VM* vm;
     pk_VM* vm;
 
 
     void (*_gc_on_delete)(pk_VM*, PyObject*);
     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__ctor(pk_ManagedHeap* self, pk_VM* vm);
 void pk_ManagedHeap__dtor(pk_ManagedHeap* self);
 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);
 void pk_ManagedHeap__collect_if_needed(pk_ManagedHeap* self);
 int pk_ManagedHeap__collect(pk_ManagedHeap* self);
 int pk_ManagedHeap__collect(pk_ManagedHeap* self);
 int pk_ManagedHeap__sweep(pk_ManagedHeap* self);
 int pk_ManagedHeap__sweep(pk_ManagedHeap* self);

+ 0 - 11
src/interpreter/gc.c

@@ -8,7 +8,6 @@ void pk_ManagedHeap__ctor(pk_ManagedHeap *self, pk_VM *vm){
 
 
     self->gc_threshold = PK_GC_MIN_THRESHOLD;
     self->gc_threshold = PK_GC_MIN_THRESHOLD;
     self->gc_counter = 0;
     self->gc_counter = 0;
-    self->gc_lock_counter = 0;
     self->vm = vm;
     self->vm = vm;
 
 
     self->_gc_on_delete = NULL;
     self->_gc_on_delete = NULL;
@@ -28,17 +27,8 @@ void pk_ManagedHeap__dtor(pk_ManagedHeap *self){
     c11_vector__dtor(&self->gen);
     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){
 void pk_ManagedHeap__collect_if_needed(pk_ManagedHeap *self){
     if(self->gc_counter < self->gc_threshold) return;
     if(self->gc_counter < self->gc_threshold) return;
-    if(self->gc_lock_counter > 0) return;
     self->gc_counter = 0;
     self->gc_counter = 0;
     pk_ManagedHeap__collect(self);
     pk_ManagedHeap__collect(self);
     self->gc_threshold = self->gen.count * 2;
     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){
 int pk_ManagedHeap__collect(pk_ManagedHeap *self){
-    assert(self->gc_lock_counter == 0);
     pk_ManagedHeap__mark(self);
     pk_ManagedHeap__mark(self);
     int freed = pk_ManagedHeap__sweep(self);
     int freed = pk_ManagedHeap__sweep(self);
     return freed;
     return freed;