void abort(void) { // don't use fatal() as this calls abort ;) log_write(Fatal, "tachyon aborted.\n"); list_t* trace = ksym_trace(); ksym_write_trace(Error, trace); ksym_delete(trace); stop: asm("cli; hlt;"); goto stop; }
void thr_abort(thread_t* target) { target->state = Aborting; error("thread %d in process %d aborted!\n", target->id, target->parent->id); list_t* trace = ksym_trace(); ksym_write_trace(Error, trace); ksym_delete(trace); sysc_call(SysSchedule, 0, 0); /* never reached - as the thread is aborting, it will never be re-scheduled */ }
void abort(void) { // don't use fatal() as this calls abort ;) log_write(Fatal, "tachyon aborted.\n"); list_t* trace = ksym_trace(); ksym_write_trace(Error, trace); ksym_delete(trace); vmem_mgmt_dump_spc(spc_current()); intr_disable(); stop: asm("cli; hlt;"); goto stop; }