Skip to content

Commit

Permalink
doc: clarify async execute callback usage
Browse files Browse the repository at this point in the history
Clarify that calls to N-API should be avoided in
the 'execute' callback.

PR-URL: #21217
Refs: nodejs/help#1318
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
Reviewed-By: Vse Mozhet Byt <[email protected]>
  • Loading branch information
mhdawson authored and targos committed Jun 15, 2018
1 parent 521f8f1 commit df0f7a3
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion doc/api/n-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,11 @@ operations. Callback functions must statisfy the following signature:
typedef void (*napi_async_execute_callback)(napi_env env, void* data);
```

Implementations of this type of function should avoid making any N-API calls
that could result in the execution of JavaScript or interaction with
JavaScript objects. Most often, any code that needs to make N-API
calls should be made in `napi_async_complete_callback` instead.

#### napi_async_complete_callback
Function pointer used with functions that support asynchronous
operations. Callback functions must statisfy the following signature:
Expand Down Expand Up @@ -3322,7 +3327,14 @@ asynchronous workers. Instances are created/deleted with

The `execute` and `complete` callbacks are functions that will be
invoked when the executor is ready to execute and when it completes its
task respectively. These functions implement the following interfaces:
task respectively.

The `execute` function should avoid making any N-API calls
that could result in the execution of JavaScript or interaction with
JavaScript objects. Most often, any code that needs to make N-API
calls should be made in `complete` callback instead.

These functions implement the following interfaces:

```C
typedef void (*napi_async_execute_callback)(napi_env env,
Expand Down

0 comments on commit df0f7a3

Please sign in to comment.