diff options
Diffstat (limited to 'src/async_wrap.h')
-rw-r--r-- | src/async_wrap.h | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/async_wrap.h b/src/async_wrap.h index bcd37bb0c0..20134f4a7b 100644 --- a/src/async_wrap.h +++ b/src/async_wrap.h @@ -109,12 +109,18 @@ class AsyncWrap : public BaseObject { AsyncWrap(Environment* env, v8::Local<v8::Object> object, ProviderType provider, - double execution_async_id = -1); + double execution_async_id = kInvalidAsyncId); + + // This constructor creates a reuseable instance where user is responsible + // to call set_provider_type() and AsyncReset() before use. + AsyncWrap(Environment* env, v8::Local<v8::Object> object); ~AsyncWrap() override; AsyncWrap() = delete; + static constexpr double kInvalidAsyncId = -1; + static v8::Local<v8::FunctionTemplate> GetConstructorTemplate( Environment* env); @@ -141,6 +147,8 @@ class AsyncWrap : public BaseObject { static void EmitAfter(Environment* env, double async_id); static void EmitPromiseResolve(Environment* env, double async_id); + void EmitDestroy(); + void EmitTraceEventBefore(); static void EmitTraceEventAfter(ProviderType type, double async_id); void EmitTraceEventDestroy(); @@ -155,10 +163,11 @@ class AsyncWrap : public BaseObject { inline double get_trigger_async_id() const; void AsyncReset(v8::Local<v8::Object> resource, - double execution_async_id = -1, + double execution_async_id = kInvalidAsyncId, bool silent = false); - void AsyncReset(double execution_async_id = -1, bool silent = false); + void AsyncReset(double execution_async_id = kInvalidAsyncId, + bool silent = false); // Only call these within a valid HandleScope. v8::MaybeLocal<v8::Value> MakeCallback(const v8::Local<v8::Function> cb, @@ -210,7 +219,7 @@ class AsyncWrap : public BaseObject { bool silent); ProviderType provider_type_; // Because the values may be Reset(), cannot be made const. - double async_id_ = -1; + double async_id_ = kInvalidAsyncId; double trigger_async_id_; }; |