-
Notifications
You must be signed in to change notification settings - Fork 465
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Discussion: Naming of envs #1527
Comments
Re #1514 |
I really like the qualifier of "basic" for the env.
Makes sense to me!
And this paradigm goes well with the work we'll do in node-addon-api to incorporate the sync finalizers. |
@gabrielschulhof , regarding finalizers: void my_sync_finalizer(node_api_basic_env env, void* data, void* hint);
void my_regular_finalizer(napi_env env, void* data, void* hint); eg. for documentation, would you say that a finalizer can be categorized as either a "synchronous" finalizer or a "regular" finalizer? Perhaps it's better for "synchronous" or "asynchronous"? |
node_api_basic_env sounds good to me as well. |
In the 5 July Node-API meeting, we settled on the finalizer accepting a typedef void (*node_api_basic_finalizer)(node_api_basic_env, void* data, void* hint); We don't have any characterization of the existing
For now, it may be okay to settle on eg. "A finalizer is a basic finalizer if <conditions>." PTAL at https://github.com/KevinEady/node-addon-api/blob/add-nogc-types/doc/finalization.md for WIP documentation attached to #1514 |
Agreement reached, closing. |
Following up on our discussion during the meeting, let's jot down the possible names we'd like to use instead of
env
andnogc_env
. Here are the scenarios I can think of so far:Inspired my Michael's emphasis that we're dealing with a base class - subclass relationship, I was thinking,
since
basic
conveys the idea that fewer things can be done when you only have a "basic" environment, and since folks might be familiar with the base class/subclass relationship, whereby if a function accepts a base class then one can pass either, whereas if the function accepts a subclass and one only has a base class handy, then the function is off-limits.We also need not necessarily elaborate on why an environment is basic. The fact that the context of being in a sync finalizer and therefore unable to manipulate engine heap is the reason why some APIs are off-limits is something we can document, but not absolutely necessarily.
WDYT?
The text was updated successfully, but these errors were encountered: