7
は、私は、コールバックを取り、別のスレッドでそれを呼び出すC関数を持っていると言う:jsコールバックを別のスレッドで呼び出すffi関数に渡すことは安全ですか?
void call_in_new_thread(void (*callback)()) {
// spawn a new thread and call `callback` in it ...
}
は今、私はそれにJavaScript関数を渡し、ノードFFI経由してJavaScriptからこの関数を呼び出したい:
var callbackType = 'pointer'
var lib = ffi.Library('mylib', {
'call_in_new_thread': [ 'void', [ callbackType ] ],
})
var callback = ffi.Callback('void', [ 'void' ], function() {
// which thread I'm in now?
console.log("hello!")
})
lib.call_in_new_thread(callback)
私の質問:有効ですか?スレッドセーフですか?実際にjavascriptコールバックはどのスレッドで実行されますか? node.jsメインスレッド、またはffiライブラリによって作成されたスレッドでは? Node-FFIは何とかコールを同期させますか?