void push_vm_interrupt_all(push_vm_t *vm, push_int_t interrupt_flag) { GList *link; g_return_if_null(vm); g_mutex_lock(vm->mutex); for (link = vm->processes; link != NULL; link = link->next) { push_interrupt((push_t*)link->data, interrupt_flag); } g_mutex_unlock(vm->mutex); }
void send_to_io (struct ctx_t* ctx, long long waitinstr) { printf("\nSending process of uid %d at inst no. %lld\n", ctx->uid, instr_num); interrupt itrp; itrp.type = IO_INTERRUPT; itrp.details = malloc(sizeof(io_interrupt_details)); itrp.instno = instr_num + waitinstr; ((io_interrupt_details*)(itrp.details))->proc = ctx; push_interrupt(itrp); ctx_set_status(ctx, ctx_suspended); //block_process(ctx); }