Git Product home page Git Product logo

Comments (7)

jonhoo avatar jonhoo commented on May 6, 2024 1

Is it still true that services have to be Clone when using FutureService? As far as I can tell, the tokio event-loop will only handle one event internally at a time, and so the service won't need to be cloned?

from tarpc.

tikue avatar tikue commented on May 6, 2024 1

To be honest, I don't know why anymore! the tokio_service::Service trait used to have a Send bound, which meant services needed to either be Sync (and wrapped in an Arc) or Clone, and the latter is a generalization of the former. However, I believe the Send bound was removed from Service so this all needs to be revisited. This is one of the things I want to sort out before the next release, and I really want to ship it this week, so stay tuned (or feel free to investigate it independently; PRs always welcome).

from tarpc.

tikue avatar tikue commented on May 6, 2024

Currently, this is still true. Some of this code needs to be cleaned up -- for instance, there's a Send bound on FutureService that only exists on the off chance the user wants to start the service via a reactor::core::Remote (a Handle wouldn't require Send). So the bottom line is there is work to do here, but I think if you just wrap your service in an Rc for now it should be fine.

from tarpc.

jonhoo avatar jonhoo commented on May 6, 2024

Hmm, why is that (that Clone is necessary that is)? Is it fundamental? If not, is there a chance that FutureService methods might start taking a &mut self in the future?

from tarpc.

jonhoo avatar jonhoo commented on May 6, 2024

We briefly discussed this a while ago but I can't find the discussion right now. I believe from that discussion that it wasn't particularly tied to FutureService though?

from tarpc.

tikue avatar tikue commented on May 6, 2024

(btw, let's move this conversation to #86)

from tarpc.

jonhoo avatar jonhoo commented on May 6, 2024

Just leaving a note that we also ought to include a generated service somewhere so that the docs contain an easy-to-reference list of things like methods of FutureService.

from tarpc.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.