1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
#include <cstdlib>
#include "napi.h"
#include "test_helper.h"
#if (NAPI_VERSION > 3)
using namespace Napi;
namespace {
void CallJS(napi_env env, napi_value /* callback */, void* /*data*/) {
Napi::Error error = Napi::Error::New(env, "test-from-native");
NAPI_THROW_VOID(error);
}
void TestCall(const CallbackInfo& info) {
Napi::Env env = info.Env();
ThreadSafeFunction wrapped =
ThreadSafeFunction::New(env,
info[0].As<Napi::Function>(),
Object::New(env),
String::New(env, "Test"),
0,
1);
wrapped.BlockingCall(static_cast<void*>(nullptr));
wrapped.Release();
}
void TestCallWithNativeCallback(const CallbackInfo& info) {
Napi::Env env = info.Env();
ThreadSafeFunction wrapped = ThreadSafeFunction::New(
env, Napi::Function(), Object::New(env), String::New(env, "Test"), 0, 1);
wrapped.BlockingCall(static_cast<void*>(nullptr), CallJS);
wrapped.Release();
}
} // namespace
Object InitThreadSafeFunctionException(Env env) {
Object exports = Object::New(env);
exports["testCall"] = Function::New(env, TestCall);
exports["testCallWithNativeCallback"] =
Function::New(env, TestCallWithNativeCallback);
return exports;
}
#endif
|