Comments (4)
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.
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.
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.
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)
- Can't re export lua_module in own lib
- Can module mode works with async? HOT 2
- Difficulty creating a wrapper type HOT 1
- Support Audio manipulation HOT 2
- Support UI HOT 2
- Error compiling module to wasm32-unknown-emscripten
- Terra integration?
- Lifetime Issues with Scope HOT 3
- In a module best way to deal with async HOT 4
- Serialization: Recursive table detection yields false positives HOT 1
- Allow setting luau compiler options when loading with `require` HOT 2
- Builds fail with useless errors if user's global Cargo target-dir is changed HOT 3
- Send feature flag HOT 2
- bug: `c_void` not a Sync HOT 3
- Limiting script execution time (a question and a bug report) HOT 2
- Deserialize from a table with function HOT 2
- Async functions from different modules treated as normal coroutines HOT 4
- How to convert json to `mlua::Value` like `c-json.decode` HOT 4
- how to method UserData method self.vars? HOT 2
- table.concat expect got "hello" HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mlua.