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)
- can wast2json write out binary modules as they are without error checking? HOT 4
- wat2wasm fails converting .wast files in testsuite: error: unexpected token (, expected EOF. HOT 4
- feature request: support for WASI preview 2 component model HOT 1
- wat2wasm segfaults on .wat file with many nested if statements HOT 9
- Use of call_ref does not take a type indice in wat2wasm HOT 1
- Output results of the wasm-decompile to be easier to understand which function is called by call_indirect HOT 1
- [wasm2c] MSVC miscompiles for certain fp constants HOT 5
- WASM2C - What happened to wasm_rt_allocate_memory HOT 3
- Error using wasm2wat on a wasm file generated by Moonbit: "unexpected type form (got -0x30)" HOT 1
- 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
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.