aboutsummaryrefslogtreecommitdiff
path: root/src/rt/rust_comm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/rt/rust_comm.cpp')
-rw-r--r--src/rt/rust_comm.cpp74
1 files changed, 0 insertions, 74 deletions
diff --git a/src/rt/rust_comm.cpp b/src/rt/rust_comm.cpp
index 37929b8b..3fbaaa04 100644
--- a/src/rt/rust_comm.cpp
+++ b/src/rt/rust_comm.cpp
@@ -1,87 +1,13 @@
#include "rust_internal.h"
-template class ptr_vec<rust_token>;
template class ptr_vec<rust_alarm>;
-template class ptr_vec<rust_chan>;
rust_alarm::rust_alarm(rust_task *receiver) :
receiver(receiver)
{
}
-// Ports.
-
-rust_port::rust_port(rust_task *task, size_t unit_sz) :
- task(task),
- unit_sz(unit_sz),
- writers(task->dom),
- chans(task->dom)
-{
- task->log(rust_log::MEM|rust_log::COMM,
- "new rust_port(task=0x%" PRIxPTR ", unit_sz=%d) -> port=0x%"
- PRIxPTR, (uintptr_t)task, unit_sz, (uintptr_t)this);
-}
-
-rust_port::~rust_port()
-{
- task->log(rust_log::COMM|rust_log::MEM,
- "~rust_port 0x%" PRIxPTR,
- (uintptr_t)this);
- while (chans.length() > 0)
- chans.pop()->disassociate();
-}
-
-
-// Tokens.
-
-rust_token::rust_token(rust_chan *chan) :
- chan(chan),
- idx(0),
- submitted(false)
-{
-}
-
-rust_token::~rust_token()
-{
-}
-
-bool
-rust_token::pending() const
-{
- return submitted;
-}
-
-void
-rust_token::submit()
-{
- rust_port *port = chan->port;
- rust_dom *dom = chan->task->dom;
-
- I(dom, port);
- I(dom, !submitted);
-
- port->writers.push(this);
- submitted = true;
-}
-
-void
-rust_token::withdraw()
-{
- rust_task *task = chan->task;
- rust_port *port = chan->port;
- rust_dom *dom = task->dom;
-
- I(dom, port);
- I(dom, submitted);
-
- if (task->blocked())
- task->wakeup(this); // must be blocked on us (or dead)
- port->writers.swap_delete(this);
- submitted = false;
-}
-
-
//
// Local Variables:
// mode: C++