]> Nishi Git Mirror - gwion.git/commitdiff
:art: Fix Shred.exit
authorJérémie Astor <fennecdjay@gmail.com>
Mon, 6 Sep 2021 10:27:51 +0000 (12:27 +0200)
committerJérémie Astor <fennecdjay@gmail.com>
Mon, 6 Sep 2021 10:27:51 +0000 (12:27 +0200)
src/lib/shred.c
src/vm/vm.c

index 0403d8bcd15f76db7f171949c33d10a1d1809557..b3cb6564fd245f3e0023bd6b5f84a8e1658b55b0 100644 (file)
@@ -59,7 +59,8 @@ ANN M_Object new_fork(const VM_Shred shred, const VM_Code code, const Type t) {
 
 static MFUN(gw_shred_exit) {
   const VM_Shred s = ME(o);
-  vm_shred_exit(s);
+  if((m_int)s->tick->prev != -1)
+   shreduler_remove(s->tick->shreduler, s, true);
 }
 
 static MFUN(vm_shred_id) {
@@ -153,10 +154,8 @@ describe_name(, s->info->orig->name) describe_name(_code, s->code->name)
         describe_path_and_dir(_code, s->code->name)
 
 static DTOR(shred_dtor) {
-  if (ME(o)) {
-    VM_Shred s = ME(o);
-    free_vm_shred(s);
-  }
+  VM_Shred s = ME(o);
+  free_vm_shred(s);
 }
 
 static MFUN(shred_lock) { if(ME(o)->tick) MUTEX_LOCK(ME(o)->tick->shreduler->mutex); }
index 922ef5cb48b6302a5d0635cf29671d49df37b4b1..fc9f297f4dbf2cd36cfeb0df958e86988383ef99 100644 (file)
@@ -263,7 +263,7 @@ ANN /*static inline */ VM_Shred init_spork_shred(const VM_Shred shred,
   sh->tick->parent = shred->tick;
   if (!shred->tick->child.ptr) vector_init(&shred->tick->child);
   vector_add(&shred->tick->child, (vtype)sh);
-  vector_add(&shred->gc, (vtype)sh->info->me);
+//  vector_add(&shred->gc, (vtype)sh->info->me);
   return sh;
 }