further work on return values
[mTask.git] / client / interpret.c
index e5907cf..66173e2 100644 (file)
@@ -163,9 +163,10 @@ void run_task(struct task *t)
                        break;
 #endif
                case BCRETURN: trace("Return");
-                       pc = plen;
                        t->value = (uint16_t) stack[sp-1];
-                       break;
+                       debug("Task returned");
+                       task_delete(t->taskid);
+                       return;
                default:
                        trace("unrecognized");
                        die("Unrecognized command: %d", program[pc-1]);