From bbe2004f5d2b434fe5942fc3c8954a297b317fd0 Mon Sep 17 00:00:00 2001 From: Bert Belder Date: Fri, 8 Feb 2019 20:32:17 -0800 Subject: Shared buffer fixes (#1644) * makes `libdeno.shared` a `SharedArrayBuffer` instead of a regular `ArrayBuffer`. * fixes `libdeno.shared` becoming undefined after accessing it once. --- libdeno/binding.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'libdeno/binding.cc') diff --git a/libdeno/binding.cc b/libdeno/binding.cc index 961fd1797..78e4cad29 100644 --- a/libdeno/binding.cc +++ b/libdeno/binding.cc @@ -316,14 +316,15 @@ void Shared(v8::Local property, if (d->shared_.data_ptr == nullptr) { return; } - v8::Local ab; + v8::Local ab; if (d->shared_ab_.IsEmpty()) { // Lazily initialize the persistent external ArrayBuffer. - ab = v8::ArrayBuffer::New(isolate, d->shared_.data_ptr, d->shared_.data_len, - v8::ArrayBufferCreationMode::kExternalized); + ab = v8::SharedArrayBuffer::New(isolate, d->shared_.data_ptr, + d->shared_.data_len, + v8::ArrayBufferCreationMode::kExternalized); d->shared_ab_.Reset(isolate, ab); } - info.GetReturnValue().Set(ab); + info.GetReturnValue().Set(d->shared_ab_); } void DenoIsolate::ClearModules() { -- cgit v1.2.3