andywer / andywer/threads.js

Cannot create a handle without a HandleScope

未关闭
#298 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
question
主要语言
TypeScript
星标
3.5k
派生
173
PR 合并指标
30 天内没有已合并 PR

描述

```
$ node index.js
FATAL ERROR: v8::HandleScope::CreateHandle() Cannot create a handle without a HandleScope
1: 0x1010285f9 node::Abort() (.cold.1) [/Users/brandonros/.nvm/versions/node/v12.16.3/bin/node]
2: 0x10008634d node::FatalError(char const*, char const*) [/Users/brandonros/.nvm/versions/node/v12.16.3/bin/node]
3: 0x10008648e node::OnFatalError(char const*, char const*) [/Users/brandonros/.nvm/versions/node/v12.16.3/bin/node]
4: 0x100187c7e v8::Utils::ReportApiFailure(char const*, char const*) [/Users/brandonros/.nvm/versions/node/v12.16.3/bin/node]
5: 0x1002de7a2 v8::internal::HandleScope::Extend(v8::internal::Isolate*) [/Users/brandonros/.nvm/versions/node/v12.16.3/bin/node]
6: 0x1004dd11e v8::internal::JSReceiver::GetCreationContext() [/Users/brandonros/.nvm/versions/node/v12.16.3/bin/node]
7: 0x1001a3778 v8::Object::CreationContext() [/Users/brandonros/.nvm/versions/node/v12.16.3/bin/node]
8: 0x100001cad node::MakeCallback(v8::Isolate*, v8::Local, v8::Local, int, v8::Local*, node::async_context) [/Users/brandonros/.nvm/versions/node/v12.16.3/bin/node]
9: 0x102e8d37f handleCompletion(Transfer*) [/Users/brandonros/Desktop/uds-server/node_modules/usb/build/Release/usb_bindings.node]
10: 0x102e8e48b UVQueue::internal_callback(uv_async_s*) [/Users/brandonros/Desktop/uds-server/node_modules/usb/build/Release/usb_bindings.node]
11: 0x1008e840d uv__async_io [/Users/brandonros/.nvm/versions/node/v12.16.3/bin/node]
12: 0x1008f7c12 uv__io_poll [/Users/brandonros/.nvm/versions/node/v12.16.3/bin/node]
13: 0x1008e8846 uv_run [/Users/brandonros/.nvm/versions/node/v12.16.3/bin/node]
14: 0x1000bb7a2 node::NodeMainInstance::Run() [/Users/brandonros/.nvm/versions/node/v12.16.3/bin/node]
15: 0x100062e9f node::Start(int, char**) [/Users/brandonros/.nvm/versions/node/v12.16.3/bin/node]
16: 0x7fff6a59bcc9 start [/usr/lib/system/libdyld.dylib]
17: 0x2
Abort trap: 6
```

device-worker.js

```
const { expose } = require('threads/worker')
const { Subject } = require('threads/observable')
const Device = require('./lib/gs_usb')

let rxSubject = new Subject()
let device = null

expose({
init: async () => {
device = new Device()
await device.init()
device.on('frame', (frame) => {
const arbitrationId = frame.readUInt32LE(0)
const data = frame.slice(4)
rxSubject.next({
arbitrationId,
data
})
})
//device.recv()
},
send: (arbitrationId, data) => {
return device.sendCanFrame(arbitrationId, data)
}
})
```

main.js

```
const { spawn, Thread, Worker } = require("threads")
const run = async () => {
const worker = await spawn(new Worker('./device-worker'))
await worker.init()
}
run()
```

`./lib/gs-usb` uses the `usb` native module

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。