From cfeb243676946c9336d8d74db50cd77677ed9fa9 Mon Sep 17 00:00:00 2001 From: fennecdjay Date: Sat, 11 May 2019 13:35:36 +0200 Subject: [PATCH] :shirt: Do some clean --- include/vm.h | 2 +- src/compile.c | 6 +++--- src/vm/driver.c | 1 - src/vm/shreduler.c | 1 + src/vm/vm.c | 8 ++------ 5 files changed, 7 insertions(+), 11 deletions(-) diff --git a/include/vm.h b/include/vm.h index 745189c0..393439a3 100644 --- a/include/vm.h +++ b/include/vm.h @@ -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); diff --git a/src/compile.c b/src/compile.c index 3f7c9d97..2dae2785 100644 --- a/src/compile.c +++ b/src/compile.c @@ -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) { diff --git a/src/vm/driver.c b/src/vm/driver.c index 37b095b6..a1f66327 100644 --- a/src/vm/driver.c +++ b/src/vm/driver.c @@ -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; diff --git a/src/vm/shreduler.c b/src/vm/shreduler.c index 6aa23902..1cd894b6 100644 --- a/src/vm/shreduler.c +++ b/src/vm/shreduler.c @@ -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); } diff --git a/src/vm/vm.c b/src/vm/vm.c index 39ec2b1d..c622f695 100644 --- a/src/vm/vm.c +++ b/src/vm/vm.c @@ -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)) -- 2.43.0