core: Add comm::recv_chan to receive from a channel

This commit is contained in:
Brian Anderson
2012-05-01 17:39:56 -07:00
parent 29b807be2a
commit beb1a59f82
3 changed files with 73 additions and 0 deletions

View File

@@ -630,6 +630,24 @@ sched_threads() {
return task->sched->number_of_threads();
}
extern "C" CDECL rust_port*
rust_port_take(rust_port_id id) {
rust_task *task = rust_get_current_task();
return task->kernel->get_port_by_id(id);
}
extern "C" CDECL void
rust_port_drop(rust_port *p) {
assert(p != NULL);
p->deref();
}
extern "C" CDECL rust_task_id
rust_port_task(rust_port *p) {
assert(p != NULL);
return p->task->id;
}
extern "C" CDECL rust_port*
new_port(size_t unit_sz) {
rust_task *task = rust_get_current_task();