Commit 968020e9 by Benjamin Byholm Committed by Michael Mifsud

Propagate async_context

parent ad00d8b4
...@@ -229,6 +229,7 @@ int GetResult(sass_context_wrapper* ctx_w, Sass_Context* ctx, bool is_sync = fal ...@@ -229,6 +229,7 @@ int GetResult(sass_context_wrapper* ctx_w, Sass_Context* ctx, bool is_sync = fal
void MakeCallback(uv_work_t* req) { void MakeCallback(uv_work_t* req) {
Nan::HandleScope scope; Nan::HandleScope scope;
Nan::AsyncResource async("sass:MakeCallback");
Nan::TryCatch try_catch; Nan::TryCatch try_catch;
sass_context_wrapper* ctx_w = static_cast<sass_context_wrapper*>(req->data); sass_context_wrapper* ctx_w = static_cast<sass_context_wrapper*>(req->data);
...@@ -245,7 +246,7 @@ void MakeCallback(uv_work_t* req) { ...@@ -245,7 +246,7 @@ void MakeCallback(uv_work_t* req) {
if (status == 0 && ctx_w->success_callback) { if (status == 0 && ctx_w->success_callback) {
// if no error, do callback(null, result) // if no error, do callback(null, result)
ctx_w->success_callback->Call(0, 0); ctx_w->success_callback->Call(0, 0, &async);
} }
else if (ctx_w->error_callback) { else if (ctx_w->error_callback) {
// if error, do callback(error) // if error, do callback(error)
...@@ -253,7 +254,7 @@ void MakeCallback(uv_work_t* req) { ...@@ -253,7 +254,7 @@ void MakeCallback(uv_work_t* req) {
v8::Local<v8::Value> argv[] = { v8::Local<v8::Value> argv[] = {
Nan::New<v8::String>(err).ToLocalChecked() Nan::New<v8::String>(err).ToLocalChecked()
}; };
ctx_w->error_callback->Call(1, argv); ctx_w->error_callback->Call(1, argv, &async);
} }
if (try_catch.HasCaught()) { if (try_catch.HasCaught()) {
Nan::FatalException(try_catch); Nan::FatalException(try_catch);
......
...@@ -151,6 +151,7 @@ void CallbackBridge<T, L>::dispatched_async_uv_callback(uv_async_t *req) { ...@@ -151,6 +151,7 @@ void CallbackBridge<T, L>::dispatched_async_uv_callback(uv_async_t *req) {
* post_process_args(). * post_process_args().
*/ */
Nan::HandleScope scope; Nan::HandleScope scope;
Nan::AsyncResource async("sass:CallbackBridge");
Nan::TryCatch try_catch; Nan::TryCatch try_catch;
std::vector<v8::Local<v8::Value>> argv_v8 = bridge->pre_process_args(bridge->argv); std::vector<v8::Local<v8::Value>> argv_v8 = bridge->pre_process_args(bridge->argv);
...@@ -159,7 +160,7 @@ void CallbackBridge<T, L>::dispatched_async_uv_callback(uv_async_t *req) { ...@@ -159,7 +160,7 @@ void CallbackBridge<T, L>::dispatched_async_uv_callback(uv_async_t *req) {
} }
argv_v8.push_back(Nan::New(bridge->wrapper)); argv_v8.push_back(Nan::New(bridge->wrapper));
bridge->callback->Call(argv_v8.size(), &argv_v8[0]); bridge->callback->Call(argv_v8.size(), &argv_v8[0], &async);
if (try_catch.HasCaught()) { if (try_catch.HasCaught()) {
Nan::FatalException(try_catch); Nan::FatalException(try_catch);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment