aboutsummaryrefslogtreecommitdiff
path: root/src/rt/rust_chan.h
diff options
context:
space:
mode:
authorGraydon Hoare <[email protected]>2010-06-23 21:03:09 -0700
committerGraydon Hoare <[email protected]>2010-06-23 21:03:09 -0700
commitd6b7c96c3eb29b9244ece0c046d3f372ff432d04 (patch)
treeb425187e232966063ffc2f0d14c04a55d8f004ef /src/rt/rust_chan.h
parentInitial git commit. (diff)
downloadrust-d6b7c96c3eb29b9244ece0c046d3f372ff432d04.tar.xz
rust-d6b7c96c3eb29b9244ece0c046d3f372ff432d04.zip
Populate tree.
Diffstat (limited to 'src/rt/rust_chan.h')
-rw-r--r--src/rt/rust_chan.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/rt/rust_chan.h b/src/rt/rust_chan.h
new file mode 100644
index 00000000..a56ba0ca
--- /dev/null
+++ b/src/rt/rust_chan.h
@@ -0,0 +1,22 @@
+
+#ifndef RUST_CHAN_H
+#define RUST_CHAN_H
+
+class rust_chan : public rc_base<rust_chan>, public task_owned<rust_chan> {
+public:
+ rust_chan(rust_task *task, rust_port *port);
+ ~rust_chan();
+
+ rust_task *task;
+ rust_port *port;
+ circ_buf buffer;
+ size_t idx; // Index into port->chans.
+
+ // Token belonging to this chan, it will be placed into a port's
+ // writers vector if we have something to send to the port.
+ rust_token token;
+
+ void disassociate();
+};
+
+#endif /* RUST_CHAN_H */