ngx_qjs_event_t *event;
ngx_connection_t *c;
+ external = JS_GetContextOpaque(cx);
+ ctx = ngx_qjs_external_ctx(cx, external);
+ if (ctx->engine == NULL) {
+ return JS_ThrowTypeError(cx, "async operations are not allowed "
+ "during module initialization");
+ }
+
if (!JS_IsFunction(cx, argv[0])) {
return JS_ThrowTypeError(cx, "first arg must be a function");
}
n = immediate ? 1 : 2;
argc = (argc >= n) ? argc - n : 0;
- external = JS_GetContextOpaque(cx);
- ctx = ngx_qjs_external_ctx(cx, external);
-
event = ngx_pcalloc(ngx_qjs_external_pool(cx, external),
sizeof(ngx_qjs_event_t) + sizeof(JSValue) * argc);
if (event == NULL) {
ngx_js_event_t *event;
ngx_connection_t *c;
+ ctx = ngx_external_ctx(vm, njs_vm_external_ptr(vm));
+ if (ctx->engine == NULL) {
+ njs_vm_type_error(vm, "async operations are not allowed "
+ "during module initialization");
+ return NJS_ERROR;
+ }
+
if (njs_slow_path(nargs < 2)) {
njs_vm_type_error(vm, "too few arguments");
return NJS_ERROR;
event->args = (njs_opaque_value_t *) &event[1];
event->destructor = ngx_js_clear_timer;
- ctx = ngx_external_ctx(vm, njs_vm_external_ptr(vm));
event->fd = ctx->event_id++;
c = ngx_external_connection(vm, njs_vm_external_ptr(vm));
ngx_str_t *resolve_host;
ngx_pool_t *pool;
njs_value_t *init, *value;
+ ngx_js_ctx_t *jsctx;
ngx_js_http_t *http;
ngx_js_fetch_t *fetch;
ngx_js_request_t request;
#endif
external = njs_vm_external_ptr(vm);
+ jsctx = ngx_external_ctx(vm, external);
+ if (jsctx->engine == NULL) {
+ njs_vm_type_error(vm, "async operations are not allowed "
+ "during module initialization");
+ return NJS_ERROR;
+ }
+
c = ngx_external_connection(vm, external);
pool = ngx_external_pool(vm, external);
ngx_resolver_ctx_t *rs;
external = JS_GetContextOpaque(cx);
+ ctx = ngx_qjs_external_ctx(cx, external);
+ if (ctx->engine == NULL) {
+ return JS_ThrowTypeError(cx, "async operations are not allowed "
+ "during module initialization");
+ }
+
c = ngx_qjs_external_connection(cx, external);
pool = ngx_qjs_external_pool(cx, external);
http->header_only = 1;
}
- ctx = ngx_qjs_external_ctx(cx, JS_GetContextOpaque(cx));
-
NJS_CHB_MP_INIT(&http->chain, ctx->engine->pool);
NJS_CHB_MP_INIT(&http->response.chain, ctx->engine->pool);