From 5e2a0b4c7f0f5de1b33ab86025f1282e988f7a3c Mon Sep 17 00:00:00 2001 From: Dmitry Volyntsev Date: Thu, 29 Jun 2023 20:44:14 -0700 Subject: Modules: introduced ngx.worker_id. worker_id corresponds to an nginx internal worker id. The value is between 0 and worker_processes - 1. --- nginx/ngx_js.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'nginx/ngx_js.c') diff --git a/nginx/ngx_js.c b/nginx/ngx_js.c index 27800f31..8973f9f6 100644 --- a/nginx/ngx_js.c +++ b/nginx/ngx_js.c @@ -25,6 +25,8 @@ static njs_int_t ngx_js_ext_prefix(njs_vm_t *vm, njs_object_prop_t *prop, njs_value_t *value, njs_value_t *setval, njs_value_t *retval); static njs_int_t ngx_js_ext_version(njs_vm_t *vm, njs_object_prop_t *prop, njs_value_t *value, njs_value_t *setval, njs_value_t *retval); +static njs_int_t ngx_js_ext_worker_id(njs_vm_t *vm, njs_object_prop_t *prop, + njs_value_t *value, njs_value_t *setval, njs_value_t *retval); static void ngx_js_cleanup_vm(void *data); static njs_int_t ngx_js_core_init(njs_vm_t *vm); @@ -149,6 +151,15 @@ static njs_external_t ngx_js_ext_core[] = { } }, + { + .flags = NJS_EXTERN_PROPERTY, + .name.string = njs_str("worker_id"), + .enumerable = 1, + .u.property = { + .handler = ngx_js_ext_worker_id, + } + }, + }; @@ -452,6 +463,15 @@ ngx_js_ext_version(njs_vm_t *vm, njs_object_prop_t *prop, njs_value_t *value, } +njs_int_t +ngx_js_ext_worker_id(njs_vm_t *vm, njs_object_prop_t *prop, njs_value_t *value, + njs_value_t *setval, njs_value_t *retval) +{ + njs_value_number_set(retval, ngx_worker); + return NJS_OK; +} + + njs_int_t ngx_js_ext_log(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, njs_index_t level, njs_value_t *retval) -- cgit v1.2.3