uint32_t sr; // int 32
uint8_t n_in;
uint8_t n_out;
+ volatile uint is_running;// : 1; // => shreduler
};
typedef struct Shreduler_* Shreduler;
struct BBQ_* bbq;
struct Gwion_* gwion;
uint32_t rand[2];
- volatile unsigned is_running : 1; // => shreduler
} VM;
typedef struct VM_Shred_* VM_Shred;
ANN void gwion_run(const Gwion gwion) {
VM* vm = gwion->vm;
- vm->is_running = 1;
+ vm->bbq->is_running = 1;
plug_ini(gwion, &gwion->arg->mod);
VMBENCH_INI
gwion->di->driver->run(vm, gwion->di);
static struct Gwion_ gwion;
static void sig(int unused __attribute__((unused))) {
- gwion.vm->is_running = 0;
+ gwion.vm->bbq->is_running = 0;
}
int main(int argc, char** argv) {
}
static void dummy_run(VM* vm, DriverInfo* di) {
- while(vm->is_running) {
+ while(vm->bbq->is_running) {
di->run(vm);
++vm->bbq->pos;
}
struct ShredTick_ *tk = s->list;
if(!tk) {
if(!vector_size(&s->shreds) && !s->loop)
- vm->is_running = 0;
+ vm->bbq->is_running = 0;
return NULL;
}
const m_float time = (m_float)vm->bbq->pos + (m_float).5;
timespecadd(&exec_time, &exec_ret, &exec_time);
#endif
}
- if(!vm->is_running) {
+ if(!vm->bbq->is_running) {
#ifdef VMBENCH
printf("[VM] exec time %lu.%09lu\n", exec_time.tv_sec, exec_time.tv_nsec);
printf("[VM] exec time %09lu\n", exec_time.tv_nsec/1000);
#include "plug.h"
static void dummy_run(VM* vm, DriverInfo* di) {
- while(vm->is_running) {
+ while(vm->bbq->is_running) {
di->run(vm);
++vm->bbq->pos;
}