]> Nishi Git Mirror - gwion.git/commitdiff
:shirt: Do some clean
authorfennecdjay <astor.jeremie@wanadoo.fr>
Sat, 11 May 2019 11:35:36 +0000 (13:35 +0200)
committerfennecdjay <astor.jeremie@wanadoo.fr>
Sat, 11 May 2019 11:35:36 +0000 (13:35 +0200)
include/vm.h
src/compile.c
src/vm/driver.c
src/vm/shreduler.c
src/vm/vm.c

index 745189c0850a88fb92e7f9549e69081086360d22..393439a3bc25eabdba452ee1a08d002d5b81a5a4 100644 (file)
@@ -74,7 +74,7 @@ void free_vm_shred(const VM_Shred shred)__attribute__((hot, nonnull));
 ANN void vm_run(const VM* vm) __attribute__((hot));
 ANEW VM* new_vm(MemPool, const m_bool);
 ANN void free_vm(VM* vm);
-ANN m_uint vm_add_shred(const VM* vm, const VM_Shred shred)__attribute__((hot));
+ANN void vm_add_shred(const VM* vm, const VM_Shred shred)__attribute__((hot));
 ANN void vm_remove(const VM* vm, const m_uint index)__attribute__((hot));
 ANN m_str code_name_set(const m_str, const m_str);
 ANN m_str code_name(const m_str, const m_bool);
index 3f7c9d97055f931a50b4bce41c12240f3d634ec8..2dae2785f2f262fd111cb0931aebbe234f41d4e3 100644 (file)
@@ -77,7 +77,7 @@ static m_bool check(struct Gwion_* gwion, struct Compiler* c) {
 }
 
 static m_uint compile(struct Gwion_* gwion, struct Compiler* c) {
-  m_uint xid = 0;
+  VM_Shred shred = NULL;
   VM_Code code;
   compiler_name(gwion->p, c);
   if(check(gwion, c) < 0 ||
@@ -86,10 +86,10 @@ static m_uint compile(struct Gwion_* gwion, struct Compiler* c) {
   else {
     const VM_Shred shred = new_vm_shred(gwion->p, code);
     shred->info->args = c->args;
-    xid = vm_add_shred(gwion->vm, shred);
+    vm_add_shred(gwion->vm, shred);
   }
   compiler_clean(gwion->p, c);
-  return xid;
+  return shred ? shred->tick->xid : 0;
 }
 /*
 m_bool check_filename(struct Gwion_* vm, const m_str filename) {
index 37b095b684e2be4dc2beb1ec8770ee263f0c25c3..a1f6632784fa91da72c5bce3dcd2b2a1c0aebfd8 100644 (file)
@@ -14,7 +14,6 @@
 ANN Driver* new_driver(MemPool p) {
   Driver* di = (Driver*)mp_alloc(p, BBQ);
   di->func = dummy_driver;
-//  di->run = vm_run;
   di->driver = (DriverData*)mp_alloc(p, DriverData);
   di->is_running = 1;
   return di;
index 6aa23902380facda7eb690c00cfb33972b7edec6..1cd894b6c05acc192a510686ffd0b1ad8461c65f 100644 (file)
@@ -122,4 +122,5 @@ ANN void shreduler_add(const Shreduler s, const VM_Shred shred) {
   shred->tick->shreduler = s;
   shred->tick->xid = ++s->shred_ids;
   vector_add(&s->shreds, (vtype)shred);
+  shredule(s, shred, GWION_EPSILON);
 }
index 39ec2b1d2e7367cc110b0ac47a6f44dcfa2734ae..c622f695f517a578ae5a36d569be3b675de9173f 100644 (file)
@@ -69,21 +69,17 @@ ANN void free_vm(VM* vm) {
   mp_free(vm->gwion->p, VM, vm);
 }
 
-ANN m_uint vm_add_shred(const VM* vm, const VM_Shred shred) {
+ANN void vm_add_shred(const VM* vm, const VM_Shred shred) {
   shred->info->vm = (VM*)vm;
   shred->info->me = new_shred(shred, 1);
   shreduler_add(vm->shreduler, shred);
-  shredule(vm->shreduler, shred, GWION_EPSILON);
-  return shred->tick->xid;
 }
 
 #include "gwion.h"
-ANN m_uint vm_fork(const VM* src, const VM_Shred shred) {
+ANN void vm_fork(const VM* src, const VM_Shred shred) {
   VM* vm = shred->info->vm = gwion_cpy(src);
   shred->info->me = new_shred(shred, 0);
   shreduler_add(vm->shreduler, shred);
-  shredule(vm->shreduler, shred, GWION_EPSILON);
-  return shred->tick->xid;
 }
 
 __attribute__((hot))