n-api: mark thread-safe function as stable
Fixes: https://github.com/nodejs/node/issues/24249 PR-URL: https://github.com/nodejs/node/pull/25556 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
This commit is contained in:
parent
2c9e12e496
commit
11387e1454
@ -282,7 +282,7 @@ This is an opaque pointer that is used to represent a JavaScript value.
|
||||
|
||||
### napi_threadsafe_function
|
||||
|
||||
> Stability: 1 - Experimental
|
||||
> Stability: 2 - Stable
|
||||
|
||||
This is an opaque pointer that represents a JavaScript function which can be
|
||||
called asynchronously from multiple threads via
|
||||
@ -290,7 +290,7 @@ called asynchronously from multiple threads via
|
||||
|
||||
### napi_threadsafe_function_release_mode
|
||||
|
||||
> Stability: 1 - Experimental
|
||||
> Stability: 2 - Stable
|
||||
|
||||
A value to be given to `napi_release_threadsafe_function()` to indicate whether
|
||||
the thread-safe function is to be closed immediately (`napi_tsfn_abort`) or
|
||||
@ -305,7 +305,7 @@ typedef enum {
|
||||
|
||||
### napi_threadsafe_function_call_mode
|
||||
|
||||
> Stability: 1 - Experimental
|
||||
> Stability: 2 - Stable
|
||||
|
||||
A value to be given to `napi_call_threadsafe_function()` to indicate whether
|
||||
the call should block whenever the queue associated with the thread-safe
|
||||
@ -400,7 +400,7 @@ typedef void (*napi_async_complete_callback)(napi_env env,
|
||||
|
||||
#### napi_threadsafe_function_call_js
|
||||
|
||||
> Stability: 1 - Experimental
|
||||
> Stability: 2 - Stable
|
||||
|
||||
Function pointer used with asynchronous thread-safe function calls. The callback
|
||||
will be called on the main thread. Its purpose is to use a data item arriving
|
||||
@ -4526,7 +4526,7 @@ prevent the event loop from exiting. The APIs `napi_ref_threadsafe_function` and
|
||||
|
||||
### napi_create_threadsafe_function
|
||||
|
||||
> Stability: 1 - Experimental
|
||||
> Stability: 2 - Stable
|
||||
|
||||
<!-- YAML
|
||||
added: v10.6.0
|
||||
@ -4569,7 +4569,7 @@ parameters and with `undefined` as its `this` value.
|
||||
|
||||
### napi_get_threadsafe_function_context
|
||||
|
||||
> Stability: 1 - Experimental
|
||||
> Stability: 2 - Stable
|
||||
|
||||
<!-- YAML
|
||||
added: v10.6.0
|
||||
@ -4587,7 +4587,7 @@ This API may be called from any thread which makes use of `func`.
|
||||
|
||||
### napi_call_threadsafe_function
|
||||
|
||||
> Stability: 1 - Experimental
|
||||
> Stability: 2 - Stable
|
||||
|
||||
<!-- YAML
|
||||
added: v10.6.0
|
||||
@ -4615,7 +4615,7 @@ This API may be called from any thread which makes use of `func`.
|
||||
|
||||
### napi_acquire_threadsafe_function
|
||||
|
||||
> Stability: 1 - Experimental
|
||||
> Stability: 2 - Stable
|
||||
|
||||
<!-- YAML
|
||||
added: v10.6.0
|
||||
@ -4637,7 +4637,7 @@ This API may be called from any thread which will start making use of `func`.
|
||||
|
||||
### napi_release_threadsafe_function
|
||||
|
||||
> Stability: 1 - Experimental
|
||||
> Stability: 2 - Stable
|
||||
|
||||
<!-- YAML
|
||||
added: v10.6.0
|
||||
@ -4665,7 +4665,7 @@ This API may be called from any thread which will stop making use of `func`.
|
||||
|
||||
### napi_ref_threadsafe_function
|
||||
|
||||
> Stability: 1 - Experimental
|
||||
> Stability: 2 - Stable
|
||||
|
||||
<!-- YAML
|
||||
added: v10.6.0
|
||||
@ -4686,7 +4686,7 @@ This API may only be called from the main thread.
|
||||
|
||||
### napi_unref_threadsafe_function
|
||||
|
||||
> Stability: 1 - Experimental
|
||||
> Stability: 2 - Stable
|
||||
|
||||
<!-- YAML
|
||||
added: v10.6.0
|
||||
|
@ -12,7 +12,7 @@
|
||||
#define NAPI_VERSION NAPI_VERSION_EXPERIMENTAL
|
||||
#else
|
||||
// The baseline version for N-API
|
||||
#define NAPI_VERSION 3
|
||||
#define NAPI_VERSION 4
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
@ -192,7 +192,7 @@ NAPI_EXTERN napi_status napi_close_callback_scope(napi_env env,
|
||||
|
||||
#endif // NAPI_VERSION >= 3
|
||||
|
||||
#ifdef NAPI_EXPERIMENTAL
|
||||
#if NAPI_VERSION >= 4
|
||||
|
||||
// Calling into JS from other threads
|
||||
NAPI_EXTERN napi_status
|
||||
@ -230,7 +230,7 @@ napi_unref_threadsafe_function(napi_env env, napi_threadsafe_function func);
|
||||
NAPI_EXTERN napi_status
|
||||
napi_ref_threadsafe_function(napi_env env, napi_threadsafe_function func);
|
||||
|
||||
#endif // NAPI_EXPERIMENTAL
|
||||
#endif // NAPI_VERSION >= 4
|
||||
|
||||
EXTERN_C_END
|
||||
|
||||
|
@ -6,11 +6,11 @@
|
||||
typedef struct napi_callback_scope__* napi_callback_scope;
|
||||
typedef struct napi_async_context__* napi_async_context;
|
||||
typedef struct napi_async_work__* napi_async_work;
|
||||
#ifdef NAPI_EXPERIMENTAL
|
||||
#if NAPI_VERSION >= 4
|
||||
typedef struct napi_threadsafe_function__* napi_threadsafe_function;
|
||||
#endif // NAPI_EXPERIMENTAL
|
||||
#endif // NAPI_VERSION >= 4
|
||||
|
||||
#ifdef NAPI_EXPERIMENTAL
|
||||
#ifdef NAPI_VERSION >= 4
|
||||
typedef enum {
|
||||
napi_tsfn_release,
|
||||
napi_tsfn_abort
|
||||
@ -20,19 +20,19 @@ typedef enum {
|
||||
napi_tsfn_nonblocking,
|
||||
napi_tsfn_blocking
|
||||
} napi_threadsafe_function_call_mode;
|
||||
#endif // NAPI_EXPERIMENTAL
|
||||
#endif // NAPI_VERSION >= 4
|
||||
|
||||
typedef void (*napi_async_execute_callback)(napi_env env,
|
||||
void* data);
|
||||
typedef void (*napi_async_complete_callback)(napi_env env,
|
||||
napi_status status,
|
||||
void* data);
|
||||
#ifdef NAPI_EXPERIMENTAL
|
||||
#ifdef NAPI_VERSION >= 4
|
||||
typedef void (*napi_threadsafe_function_call_js)(napi_env env,
|
||||
napi_value js_callback,
|
||||
void* context,
|
||||
void* data);
|
||||
#endif // NAPI_EXPERIMENTAL
|
||||
#endif // NAPI_VERSION >= 4
|
||||
|
||||
typedef struct {
|
||||
uint32_t major;
|
||||
|
@ -118,6 +118,6 @@
|
||||
#define NODE_MODULE_VERSION 68
|
||||
|
||||
// the NAPI_VERSION provided by this version of the runtime
|
||||
#define NAPI_VERSION 3
|
||||
#define NAPI_VERSION 4
|
||||
|
||||
#endif // SRC_NODE_VERSION_H_
|
||||
|
@ -33,8 +33,8 @@ assert.notStrictEqual(test_general.testGetPrototype(baseObject),
|
||||
test_general.testGetPrototype(extendedObject));
|
||||
|
||||
// test version management functions
|
||||
// expected version is currently 3
|
||||
assert.strictEqual(test_general.testGetVersion(), 3);
|
||||
// expected version is currently 4
|
||||
assert.strictEqual(test_general.testGetVersion(), 4);
|
||||
|
||||
[
|
||||
123,
|
||||
|
@ -4,7 +4,6 @@
|
||||
// which, in turn, may affect the ABI stability of the project despite its use
|
||||
// of N-API.
|
||||
#include <uv.h>
|
||||
#define NAPI_EXPERIMENTAL
|
||||
#include <node_api.h>
|
||||
#include "../../js-native-api/common.h"
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user