MOO-cows Mailing List Archive

[Prev][Next][Index][Thread]

Can't suspend()ed task return a value in 1.8.0alpha1?



In examing tasks.c, I found this:
                 case TASK_SUSPENDED:
                    current_task_id = t->t.suspended.the_vm->task_id;
 this line ->       resume_from_previous_vm(t->t.suspended.the_vm,
                                            t->t.suspended.value,
                                            TASK_SUSPENDED);
                    did_one = 1;
                    break;

In server 1.7.9p2, it was like this:
	                  case TASK_SUSPENDED:
                    current_task_id = t->t.suspended.id;
 this line ->       resume_suspended_task(t->t.suspended.the_vm, 0);
                    did_one = 1;
                    break;

It seems that a suspend()ed task can't return a value, and it couldn't in
older versions. But, in older versions, it is *possible* without hacking 
other files. I made a server hack which depends on values from suspend()ed task
and read()ing task, for using read() in :do_login_command(). But it seems
I'm in a hard way... (not technical, but just I dislike to hack the well-
formed server interface.....)

Ahn, Jin-su    (jsahn@ee.snu.ac.kr)
School of Electrical Engineering
Seoul National University, Korea




Home | Subject Index | Thread Index