]> Nishi Git Mirror - gwion.git/commitdiff
:art: Introduce GWION_EPSILON
authorfennecdjay <astor.jeremie@wanadoo.fr>
Sat, 6 Apr 2019 07:36:54 +0000 (09:36 +0200)
committerfennecdjay <astor.jeremie@wanadoo.fr>
Sat, 6 Apr 2019 07:36:54 +0000 (09:36 +0200)
src/lib/event.c
src/lib/shred.c
src/vm/vm.c
util

index 16e7cc3583b91d6d254235a3062771dde2906860..c1d5e0f10b6592d87da2c32b7e2a67c204feb27e 100644 (file)
@@ -37,7 +37,7 @@ static MFUN(event_signal) {
   const Vector v = EV_SHREDS(o);
   const VM_Shred sh = (VM_Shred)vector_front(v);
   if(sh) {
-    shredule(sh->tick->shreduler, sh, .5);
+    shredule(sh->tick->shreduler, sh, GWION_EPSILON);
     vector_rem(v, 0);
   }
 }
@@ -45,7 +45,7 @@ static MFUN(event_signal) {
 ANN void broadcast(const M_Object o) {
   for(m_uint i = 0; i < vector_size(EV_SHREDS(o)); i++) {
     const VM_Shred sh = (VM_Shred)vector_at(EV_SHREDS(o), i);
-    shredule(sh->tick->shreduler, sh, .5);
+    shredule(sh->tick->shreduler, sh, GWION_EPSILON);
   }
   vector_clear(EV_SHREDS(o));
 }
index 2100c571ed9aa5ae0c349fa71746d47ffdb7539f..1cc0a467f23be7ba4a5fb471fb85bb622c5cc30a 100644 (file)
@@ -50,7 +50,7 @@ static MFUN(vm_shred_is_done) {
 static MFUN(shred_yield) {
   const VM_Shred s = ME(o);
   const Shreduler sh = shred->tick->shreduler;
-  shredule(sh, s, .5);
+  shredule(sh, s, GWION_EPSILON);
 }
 
 static SFUN(vm_shred_from_id) {
index ee99e276dda59b9be94b20ecb959d4f21dd5f5ec..d84efeaaec119687940225f9edc0d331dc4bfb4e 100644 (file)
@@ -83,7 +83,7 @@ ANN m_uint 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, .5);
+  shredule(vm->shreduler, shred, GWION_EPSILON);
   return shred->tick->xid;
 }
 
@@ -91,10 +91,8 @@ ANN m_uint vm_add_shred(const VM* vm, const VM_Shred shred) {
 ANN m_uint 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, .5);
   shreduler_add(vm->shreduler, shred);
-  shredule(vm->shreduler, shred, .5);
+  shredule(vm->shreduler, shred, GWION_EPSILON);
   return shred->tick->xid;
 }
 
@@ -573,17 +571,12 @@ ftoi:
 
 timeadv:
   reg -= SZ_FLOAT;
-{
-  register const m_float f = *(m_float*)(reg-SZ_FLOAT);
-  *(m_float*)(reg-SZ_FLOAT) = (shred->tick->wake_time += f);
-//printf("here adv %p %lu\n", s, s->bbq->is_running);
-  shredule(s, shred, f);
-//printf("here adv %p %p %lu\n", shred->tick->shreduler, s, s->bbq->is_running);
-}
-shred->code = code;
-shred->reg = reg;
-shred->mem = mem;
-shred->pc = pc;
+  shredule(s, shred, *(m_float*)(reg-SZ_FLOAT));
+  *(m_float*)(reg-SZ_FLOAT) += vm->bbq->pos;
+  shred->code = code;
+  shred->reg = reg;
+  shred->mem = mem;
+  shred->pc = pc;
   break;
 setcode:
   a.code = *(VM_Code*)(reg-SZ_INT);
diff --git a/util b/util
index 190bd8eff25ba0891a831725a90eab7e4dafc5dd..83e0acd944da2d54c63075a8a1b3c4fb964d8138 160000 (submodule)
--- a/util
+++ b/util
@@ -1 +1 @@
-Subproject commit 190bd8eff25ba0891a831725a90eab7e4dafc5dd
+Subproject commit 83e0acd944da2d54c63075a8a1b3c4fb964d8138