diff options
Diffstat (limited to 'src/rt/rust_chan.h')
| -rw-r--r-- | src/rt/rust_chan.h | 22 |
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 */ |