From: Cyrill Gorcunov via Tarantool-patches <tarantool-patches@dev.tarantool.org> To: tml <tarantool-patches@dev.tarantool.org> Cc: Vladislav Shpilevoy <v.shpilevoy@tarantool.org> Subject: [Tarantool-patches] [PATCH v14 04/12] module_cache: rename calls to ref in module structure Date: Wed, 3 Feb 2021 01:11:59 +0300 [thread overview] Message-ID: <20210202221207.383101-5-gorcunov@gmail.com> (raw) In-Reply-To: <20210202221207.383101-1-gorcunov@gmail.com> We will use this field not only to count a number of active calls to the module but to prevent the module from disappear when it get loaded via "cmod" interface (will be implemented in next patches). Same time make it 64 bit long since there might be a number of such references size_t didn't prevent from numeric overflow. Part-of #4642 Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> --- src/box/module_cache.c | 8 ++++---- src/box/module_cache.h | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/box/module_cache.c b/src/box/module_cache.c index b3bfb4963..9e5670c03 100644 --- a/src/box/module_cache.c +++ b/src/box/module_cache.c @@ -230,7 +230,7 @@ module_load(const char *package, const char *package_end) memcpy(module->package, package, package_len); module->package[package_len] = 0; rlist_create(&module->funcs_list); - module->calls = 0; + module->refs = 0; const char *tmpdir = getenv("TMPDIR"); if (tmpdir == NULL) @@ -328,7 +328,7 @@ module_delete(struct module *module) static void module_gc(struct module *module) { - if (rlist_empty(&module->funcs_list) && module->calls == 0) + if (rlist_empty(&module->funcs_list) && module->refs == 0) module_delete(module); } @@ -442,9 +442,9 @@ module_sym_call(struct module_sym *mod_sym, struct port *args, */ struct module *module = mod_sym->module; assert(module != NULL); - ++module->calls; + ++module->refs; int rc = mod_sym->addr(&ctx, data, data + data_sz); - --module->calls; + --module->refs; module_gc(module); region_truncate(region, region_svp); diff --git a/src/box/module_cache.h b/src/box/module_cache.h index 0f5d2b64a..0d56aea92 100644 --- a/src/box/module_cache.h +++ b/src/box/module_cache.h @@ -41,9 +41,9 @@ struct module { */ struct rlist funcs_list; /** - * Count of active calls. + * Count of active references to the module. */ - size_t calls; + int64_t refs; /** * Module's package name. */ -- 2.29.2
next prev parent reply other threads:[~2021-02-02 22:14 UTC|newest] Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-02-02 22:11 [Tarantool-patches] [PATCH v14 00/12] box: implement cmod Lua module Cyrill Gorcunov via Tarantool-patches 2021-02-02 22:11 ` [Tarantool-patches] [PATCH v14 01/12] box/func: factor out c function entry structure Cyrill Gorcunov via Tarantool-patches 2021-02-02 22:11 ` [Tarantool-patches] [PATCH v14 02/12] module_cache: move module handling into own subsystem Cyrill Gorcunov via Tarantool-patches 2021-02-02 22:11 ` [Tarantool-patches] [PATCH v14 03/12] module_cache: direct update a cache value on reload Cyrill Gorcunov via Tarantool-patches 2021-02-02 22:11 ` Cyrill Gorcunov via Tarantool-patches [this message] 2021-02-02 22:12 ` [Tarantool-patches] [PATCH v14 05/12] module_cache: add comment about weird resolving Cyrill Gorcunov via Tarantool-patches 2021-02-02 22:12 ` [Tarantool-patches] [PATCH v14 06/12] module_cache: module_reload - drop redundant parameter Cyrill Gorcunov via Tarantool-patches 2021-02-02 22:12 ` [Tarantool-patches] [PATCH v14 07/12] module_cache: use references as a main usage counter Cyrill Gorcunov via Tarantool-patches 2021-02-02 22:12 ` [Tarantool-patches] [PATCH v14 08/12] module_cache: make module to carry hash it belongs to Cyrill Gorcunov via Tarantool-patches 2021-02-02 22:12 ` [Tarantool-patches] [PATCH v14 09/12] module_cache: use own hash for box.schema.func requests Cyrill Gorcunov via Tarantool-patches 2021-02-02 22:12 ` [Tarantool-patches] [PATCH v14 10/12] module_cache: provide module_load/unload calls Cyrill Gorcunov via Tarantool-patches 2021-02-02 22:12 ` [Tarantool-patches] [PATCH v14 11/12] box/cmod: implement cmod Lua module Cyrill Gorcunov via Tarantool-patches 2021-02-02 22:12 ` [Tarantool-patches] [PATCH v14 12/12] test: box/cfunc -- add cmod test Cyrill Gorcunov via Tarantool-patches
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210202221207.383101-5-gorcunov@gmail.com \ --to=tarantool-patches@dev.tarantool.org \ --cc=gorcunov@gmail.com \ --cc=v.shpilevoy@tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH v14 04/12] module_cache: rename calls to ref in module structure' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox