Tarantool development patches archive
 help / color / mirror / Atom feed
From: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>
To: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: tml <tarantool-patches@dev.tarantool.org>
Subject: Re: [Tarantool-patches] [PATCH v8 1/4] box/func: factor out c function entry structure
Date: Sat, 31 Oct 2020 01:13:18 +0100	[thread overview]
Message-ID: <1c716ed7-8782-2d0a-2f60-d8ec7c4e95d9@tarantool.org> (raw)
In-Reply-To: <20201030095157.GD198833@grain>

>>> +			module_delete(module);
>>> +			return -1;
>>> +		}
>>> +	}
>>> +
>>> +	mod_sym->addr = module_sym(module, name.sym);
>>> +	if (mod_sym->addr == NULL)
>>> +		return -1;
>>
>> 2. If the module was loaded first time here, it is not unloaded in case of
>> an error in this place.
> 
> Just like it was before the patch. The patch simply factor outs the old
> code. It doesn't improve it (because, lets be honest this is a min problem
> for module management -- we've to check for module symbol not at moment
> of calling it but rather at the moment when we load a function). That
> said the issue with module management is known and I think we need to
> rework modules code more deeply, but not in this series. In the
> series it remains exactly as it was.

There is no even a ticket for that. And if you add it, it will go to wishlist,
I can assure you. The rule is that if you see a bug, the first thing you do is
ensure there is a ticket on it. This issue is definitely a bug. So you can't rely
on some refactoring of something sometime in the future. If there is a bug, it
must not be lost, and must be fixed. Bugs have higher priority than refactoring
almost always, and there is more chances it will be fixed when filed separately
from refactoring.

https://github.com/tarantool/tarantool/issues/5475

>>> +/**
>>> + * Callable symbol bound to a module.
>>> + */
>>> +struct module_sym {
>>> +	/**
>>> +	 * Anchor for module membership.
>>> +	 */
>>> +	struct rlist item;
>>> +	/**
>>> +	 * For C functions, address of the function.
>>> +	 */
>>> +	box_function_f addr;
>>> +	/**
>>> +	 * Each stored function keeps a handle to the
>>> +	 * dynamic library for the C callback.
>>> +	 */
>>
>> 3. Can't parse the comment. What is the 'C callback'?
>> And why is this function stored? After you extracted it
>> from struct func_c, it is not related to _func space, and
>> is not stored.
> 
> It is stored in memory.

Everything is stored in memory in Tarantool except Vinyl. I
see the comment is just copy-pasted from the previous place
in struct func_c, where it meant stored as stored in the
schema. In spaces.

> The C callback is the function we
> call, so we keep a pointer to a module.

You don't need a module pointer to call a function. It can be 
called by (), without a module. It is saved here to load it and
unload. At unload it may delete the module if the function object
was the last user of the module.

  reply	other threads:[~2020-10-31  0:13 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-14 13:35 [Tarantool-patches] [PATCH v8 0/4] box/cbox: implement cfunc Lua module Cyrill Gorcunov
2020-10-14 13:35 ` [Tarantool-patches] [PATCH v8 1/4] box/func: factor out c function entry structure Cyrill Gorcunov
2020-10-29 22:15   ` Vladislav Shpilevoy
2020-10-30  9:51     ` Cyrill Gorcunov
2020-10-31  0:13       ` Vladislav Shpilevoy [this message]
2020-10-31 15:27         ` Cyrill Gorcunov
2020-10-14 13:35 ` [Tarantool-patches] [PATCH v8 2/4] module_cache: move module handling into own subsystem Cyrill Gorcunov
2020-10-29 22:15   ` Vladislav Shpilevoy
2020-10-30 10:15     ` Cyrill Gorcunov
2020-10-31  0:15       ` Vladislav Shpilevoy
2020-10-31 15:29         ` Cyrill Gorcunov
2020-10-14 13:35 ` [Tarantool-patches] [PATCH v8 3/4] box/cbox: implement cbox Lua module Cyrill Gorcunov
2020-10-29 22:15   ` Vladislav Shpilevoy
2020-10-30 12:51     ` Cyrill Gorcunov
2020-10-31  0:21       ` Vladislav Shpilevoy
2020-10-31 21:59         ` Cyrill Gorcunov
2020-11-01  8:26           ` Cyrill Gorcunov
2020-11-02 22:25           ` Vladislav Shpilevoy
2020-11-03  7:26             ` Cyrill Gorcunov
2020-11-12 22:54     ` Vladislav Shpilevoy
2020-11-13 18:30       ` Cyrill Gorcunov
2020-10-14 13:35 ` [Tarantool-patches] [PATCH v8 4/4] test: box/cfunc -- add simple module test Cyrill Gorcunov

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=1c716ed7-8782-2d0a-2f60-d8ec7c4e95d9@tarantool.org \
    --to=v.shpilevoy@tarantool.org \
    --cc=gorcunov@gmail.com \
    --cc=tarantool-patches@dev.tarantool.org \
    --subject='Re: [Tarantool-patches] [PATCH v8 1/4] box/func: factor out c function entry 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