Giter Club home page Giter Club logo

Comments (4)

khvzak avatar khvzak commented on August 15, 2024

Could you try to use tokio::task::spawn_local instead of tokio::spawn?

Update: you probably could also require to make mlua::Lua 'static, this can be done by calling into_static method.

from mlua.

abesto avatar abesto commented on August 15, 2024

Oh wow, thank you for the quick response!

Update: you probably could also require to make mlua::Lua 'static, this can be done by calling into_static method.

This doesn't seem to make a difference. Rust still complains about Result, and also:

note: captured value is not `Send`
   --> src\server.rs:80:23
    |
80  |             eval_task(lua, eval_rx, notify_tx.clone()).await;
    |                       ^^^ has type `&mlua::Lua` which is not `Send`

I've double-checked my features:

mlua = { version = "0.5.4", features = ["lua54", "vendored", "serde", "send", "async"] 

Could you try to use tokio::task::spawn_local instead of tokio::spawn?

This, on the other hand, does work! It does mean that most of the app needs to run on a single thread, but to be honest I'm not too concerned about that. I imagine it'll be possible to minimize the part that does. I've managed to actually implement the functionality I tried to when I hit this issue, so can happily say this is now resolved. Thank you for your help!

from mlua.

khvzak avatar khvzak commented on August 15, 2024

You're getting error because &mlua::Lua type does not implement Send. This is because mlua::Lua is not Sync (but Send if feature = "send" enabled).
Unfortunately it's hard to make Lua Sync and provide true parallelism :(

I'm glad that your problem solved.

from mlua.

abesto avatar abesto commented on August 15, 2024

Ooh, Sync vs Send. I never properly learned Rust parallelism, missed that distinction. Thank you for unconfusing me on that :)

from mlua.

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.