diff options
Diffstat (limited to 'src/rt/rust_chan.h')
| -rw-r--r-- | src/rt/rust_chan.h | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/rt/rust_chan.h b/src/rt/rust_chan.h index 1d24ee78..055e359a 100644 --- a/src/rt/rust_chan.h +++ b/src/rt/rust_chan.h @@ -1,24 +1,23 @@ - #ifndef RUST_CHAN_H #define RUST_CHAN_H -class rust_chan : public rc_base<rust_chan>, public task_owned<rust_chan> { +class rust_chan : public rc_base<rust_chan>, + public task_owned<rust_chan>, + public rust_cond { public: - rust_chan(rust_task *task, rust_port *port); + rust_chan(rust_task *task, maybe_proxy<rust_port> *port); ~rust_chan(); rust_task *task; - rust_port *port; + maybe_proxy<rust_port> *port; + size_t idx; circular_buffer 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 associate(maybe_proxy<rust_port> *port); void disassociate(); + bool is_associated(); - int transmit(); + void transmit(); }; // |