Comments (4)
Duktape instances could be called from different threads
Are you sure that nobody is calling the closed instance while or after you close it?
from zipline.
Hi, I think it's because Duktape.close() is called by the same thread Duktape is running.
I did a simple test and it crashed:
private void test() {
runtime = Duktape.create();
IController controller = new IController() {
@Override
public void close() {
runtime.close();
}
};
runtime.set("controller", IController.class, controller);
runtime.evaluate("controller.close();");
}
If I call runtime.close() on another thread, it works fine.
from zipline.
Hmmm, I'd expect that example to crash. The java code is deleting the Duktape VM, and then when you return from controller.close();
you're in a destroyed JS environment.
from zipline.
That makes sense, to be safe we will always call Duktape.close() on a new thread.
from zipline.
Related Issues (20)
- Zipline’s leak detector . . . leaks
- QuickJS Heap dump
- Optimize QuickJS + Kotlinx.serialization
- ConsoleTest. logWithArguments() is flaky
- Add a slow service dispatch detector and callback in event listener
- Move compiler plugin checks from IR to FIR
- Cache freshness is not updated on successful network fetch
- Don’t pass a full stacktrace to SuspendCallback.failure() when it’s a JobCancellationException HOT 1
- Run Zipline in iOS not on Main Dispatcher HOT 2
- PropertyQueryException: Failed to query compileDevelopmentExecutableKotlinJsZipline property outputDir HOT 1
- DatabaseCommonTest.insertCollisionThrowsSQLiteException is flaky
- worked in serveDevelopmentZipline but crashed in serveProductionZipline
- Unsupported OS: windows HOT 1
- Crashes with es2015 target HOT 1
- Nullable type parameters’ don’t show up in API dumps
- Cache needs to be more resilient to a full disk HOT 3
- Loading solely from file system is very hard HOT 1
- Expose QuickJS `gc` function inside VM
- Thread per app HOT 1
- ZiplineApiCheck is too slow 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 zipline.