On Mon, Sep 29, 2014 at 1:10 PM, Paul Colomiets <[email protected]> wrote:

> Hi,
>
> On Mon, Sep 29, 2014 at 11:01 PM, Wink Saville <[email protected]> wrote:
> > Nanomsg looks interesting and I'll take a closer look. But I'm
> interested in
> > a pure rust implementation of async messaging because I'd like to create
> an
> > embedded OS using rust and not use C if possible.
> >
>
> I think even if there will be nanomsg implementation in pure rust,
> that would probably require rust stdlib, which is usually not used for
> embedded purposes, right?
>
> > I been thinking about the problem and one of the questions I have is how
> to
> > transfer ownership of a pointer from one entity to another. Not borrow
> but
> > actually transfer ownership. So if I "allocated" a Message in one entity
> > then send it to another I want the receiver to "free" the Message.
> >
>
>
> > Does the rust ownership model allow ownership to be transferred?
> >
>
> Sure, you can just send Vec of bytes or any other rust object though
> the channel (just like almost any rust object). And semantics is just
> like you described. You can also use Arc<Vec<u8>> that allows to use
> that message in several places simultaneously (e.g. if you want
> publish-subscribe)
>

I'd rather not use a channel as channels appear to only work between
tasks. I'd like to have the transfer semantics work between any two
entities.

For instance, I'd like to have a queue between two entities and transfer a
reference via the queue from A to B. .i.e. allocate a Message in A then
place the Message on a queue. A would no longer have a reference to the
Message and the only reference would be the one in the queue. Then when B
retrieved the message from the queue B would have the only reference.
Finally, when B went out of scope, the message would be freed.

Is that possible as the language is currently defined, if so could I be
pointed
to an example or documentation?


Paul
>
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to