Comments (5)
Awesome. In other words, if I encounter any state and data race-related issues with this type of usage, I can assume it's a bug?
Yeah, definitely please let us know.
from wabt.
Upon further investigation, the commentary on #2189 and #2332 seem to imply that the module instances are thread-safe, but the semantics aren’t clear.
To be clear, my current understanding is that the runtime is explicitly thread-safe (if each thread is properly initialized via wasm_rt_init_thread()
), but individual module instances might be operating in undefined behavior territory when called into from multiple threads.
from wabt.
Normally when we say code is "thread-safe," we're talking about different threads executing code in parallel. Happy to go down that road, but that doesn't seem to be what you're asking about here. If I understand the question, you're just saying, is it okay if a module is instantiated by thread A, and then (after that has provably completed) thread B calls an exported function from that module instance, and then (after that has provably completed) thread C calls an exported function from the same module instance?
Certainly our intention is that this is an easy case and there's no problem. There's no long-lived association between any per-thread state and any particular module instance.
from wabt.
If I understand the question, you're just saying, is it okay if a module is instantiated by thread A, and then (after that has provably completed) thread B calls an exported function from that module instance, and then (after that has provably completed) thread C calls an exported function from the same module instance?
Yes, this is exactly what I'm trying to understand. My apologies if I wasn't clear enough.
Certainly our intention is that this is an easy case and there's no problem. There's no long-lived association between any per-thread state and any particular module instance.
Awesome. In other words, if I encounter any state and data race-related issues with this type of usage, I can assume it's a bug?
from wabt.
Yeah, definitely please let us know.
Will do. Thank you!
(I'll close this issue now, since I got my answer.)
from wabt.
Related Issues (20)
- Out-of-Memory Program Abort in wabt::interp::Table::Grow() HOT 2
- Out-of-Memory Program Abort in BinaryReaderInterp::OnDataCount()
- Invalid Memory Read in FreeList<wabt::interp::Object*>::IsUsed()
- error initializing module: invalid import "a.a" HOT 1
- Error while running testsuite (simd_lane, simd_load) "loop not vectorized" HOT 3
- wasm2wat: support component wasm HOT 1
- Wrong type error when validating globals with gc proposal features
- wat2wasm: Assertion `!"ParseExpr should only be called when IsExpr() is true"' failed in wabt::WastParser::ParseExpr
- Wast2Json fails on the testsuite HOT 8
- Library not loaded: /usr/local/opt/openssl@3/lib/libcrypto.3.dylib HOT 8
- Missing Import when running global.wast HOT 1
- `wast2json` miscompiles "if.wast" from the specification tests HOT 4
- Build failed on Apple Silicon platform HOT 4
- [wasm2c] Strange issue with double parsing in msvc HOT 5
- wasm2c compiling minimal example issues HOT 1
- [wasm2c] catching traps without exception runtime
- “picosha2.h”: No such file or directory HOT 2
- Allocator is out of memory in wasm-interp HOT 3
- Invalid Read Memory in wabt::interp HOT 1
- [wasm2c] too few arguments to function `wasm2c_fac_instantiate` HOT 3
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 wabt.