mirror of
https://github.com/denoland/rusty_v8.git
synced 2024-12-25 08:39:15 -05:00
32abe84dc6
This patch clarifies that v8::Isolate is a single threaded creature, which can only be accessed from other threads in special circumstances. To ensure optimal operation in Deno, we remove v8::Locker, which ought to be unnecessary when a thread is dedicated to each Isolate and the Isolates never move between threads. There are valid use-cases for v8::Locker, and we hope to address them in future versions of rusty_v8. Co-authored-by: Bert Belder <bertbelder@gmail.com>
23 lines
550 B
Rust
23 lines
550 B
Rust
// Copyright 2019-2020 the Deno authors. All rights reserved. MIT license.
|
|
use rusty_v8 as v8;
|
|
|
|
pub fn main() {
|
|
let mut isolate = v8::Isolate::new(mock());
|
|
let mut hs0 = v8::HandleScope::new(&mut isolate);
|
|
let hs0 = hs0.enter();
|
|
|
|
let _fail = {
|
|
let mut hs1 = v8::HandleScope::new(hs0);
|
|
let hs1 = hs1.enter();
|
|
|
|
let mut hs2 = v8::EscapableHandleScope::new(hs1);
|
|
let hs2 = hs2.enter();
|
|
|
|
let value: v8::Local<v8::Value> = v8::Integer::new(hs2, 42).into();
|
|
hs2.escape(value)
|
|
};
|
|
}
|
|
|
|
fn mock<T>() -> T {
|
|
unimplemented!()
|
|
}
|