@@ -66,6 +66,8 @@ typedef struct ngx_http_nodejs_loc_conf_s {
66
66
v8::Global<v8::Context> context;
67
67
v8::Global<v8::Function> function;
68
68
69
+ node::async_context asyncContext;
70
+
69
71
ngx_event_t timer;
70
72
} ngx_http_nodejs_loc_conf_t ;
71
73
@@ -558,6 +560,8 @@ static void *start_nodejs (ngx_http_nodejs_loc_conf_t *ncf, ngx_http_request_t *
558
560
559
561
ncf->function = v8::Global<v8::Function>(isolate, func);
560
562
563
+ ncf->asyncContext = node::EmitAsyncInit (isolate, result->ToObject (setup->context ()).ToLocalChecked (), " ClientRequest" , -1 );
564
+
561
565
return NGX_CONF_OK;
562
566
}
563
567
@@ -1259,7 +1263,6 @@ static void nodejs_release_context (void *data) {
1259
1263
1260
1264
ctx->request_data .SetWeak ();
1261
1265
ctx->response_object .SetWeak ();
1262
- node::EmitAsyncDestroy (ctx->isolate , ctx->asyncContext );
1263
1266
}
1264
1267
1265
1268
#define v8_persist_t v8::Persistent<v8::Object, v8::CopyablePersistentTraits<v8::Object>>
@@ -1320,7 +1323,7 @@ static v8::String::Utf8Value run_v8_script (
1320
1323
ctx->request_data = v8_persist_t (isolate, request_data);
1321
1324
ctx->response_object = v8_persist_t (isolate, response_object);
1322
1325
1323
- ctx->asyncContext = node::EmitAsyncInit (isolate, request_data, " ClientRequest " , - 1 ) ;
1326
+ ctx->asyncContext = ncf-> asyncContext ;
1324
1327
1325
1328
v8::Local<v8::Value> argv[] = { request_data, response_object };
1326
1329
0 commit comments