Browse Source
* wasmtime: add EngineWeak which has ::upgrade, created by Engine::weak
Engine is, internally, just an Arc<EngineInner>, so this is trivial to implement -
EngineWeak is a Weak<EngineInner>.
This behavior is desirable because `Engine::increment_epoch` typically
happens in a worker thread, which in turn requires additional machinery
to discard the `Engine` once it is no longer needed. If instead the
worker thread holds an `EngineWeak`, it can stop ticking when all
consumers of the `Engine` have dropped it. This has been documented as a
suggestion in `increment_epoch`.
For an example of additional machinery which is simplified by this change, see 25edee0700/lib/src/execute.rs (L108-L116))
Co-authored-by: John Van Enk <vanenkj@gmail.com>
* add a test
---------
Co-authored-by: John Van Enk <vanenkj@gmail.com>
pull/7799/head
Pat Hickey
10 months ago
committed by
GitHub
1 changed files with 39 additions and 0 deletions
Loading…
Reference in new issue