@encharm/cws 4.1.0 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/dist/bindings/cws_linux_108.node +0 -0
  2. package/dist/bindings/cws_linux_64.node +0 -0
  3. package/dist/bindings/cws_linux_72.node +0 -0
  4. package/dist/bindings/cws_linux_79.node +0 -0
  5. package/dist/bindings/cws_linux_83.node +0 -0
  6. package/dist/bindings/cws_linux_93.node +0 -0
  7. package/dist/bindings/cws_win32_64.node +0 -0
  8. package/dist/bindings/cws_win32_72.node +0 -0
  9. package/dist/bindings/cws_win32_79.node +0 -0
  10. package/dist/bindings/cws_win32_83.node +0 -0
  11. package/dist/bindings/cws_win32_93.node +0 -0
  12. package/package.json +1 -1
  13. package/src/Addon.h +24 -2
  14. package/src/HTTPSocket.cpp +1 -1
  15. package/src/headers/{13 → 18}/aliased_buffer.h +61 -9
  16. package/src/headers/18/aliased_struct-inl.h +54 -0
  17. package/src/headers/18/aliased_struct.h +63 -0
  18. package/src/headers/{12 → 18}/async_wrap-inl.h +0 -0
  19. package/src/headers/{12 → 18}/async_wrap.h +26 -2
  20. package/src/headers/{12/base64.h → 18/base64-inl.h} +78 -86
  21. package/src/headers/18/base64.h +69 -0
  22. package/src/headers/{12 → 18}/base_object-inl.h +46 -25
  23. package/src/headers/{12 → 18}/base_object.h +82 -17
  24. package/src/headers/{12 → 18}/callback_queue-inl.h +9 -9
  25. package/src/headers/{12 → 18}/callback_queue.h +13 -5
  26. package/src/headers/18/cares_wrap.h +523 -0
  27. package/src/headers/{12 → 18}/connect_wrap.h +0 -0
  28. package/src/headers/{12 → 18}/connection_wrap.h +0 -0
  29. package/src/headers/18/crypto/crypto_aes.h +89 -0
  30. package/src/headers/{13/node_crypto_bio.h → 18/crypto/crypto_bio.h} +3 -4
  31. package/src/headers/18/crypto/crypto_cipher.h +291 -0
  32. package/src/headers/{13/node_crypto_clienthello-inl.h → 18/crypto/crypto_clienthello-inl.h} +4 -5
  33. package/src/headers/{13/node_crypto_clienthello.h → 18/crypto/crypto_clienthello.h} +3 -4
  34. package/src/headers/{12/node_crypto_common.h → 18/crypto/crypto_common.h} +49 -36
  35. package/src/headers/18/crypto/crypto_context.h +147 -0
  36. package/src/headers/18/crypto/crypto_dh.h +156 -0
  37. package/src/headers/18/crypto/crypto_dsa.h +77 -0
  38. package/src/headers/18/crypto/crypto_ec.h +170 -0
  39. package/src/headers/{12/node_crypto_groups.h → 18/crypto/crypto_groups.h} +3 -3
  40. package/src/headers/18/crypto/crypto_hash.h +89 -0
  41. package/src/headers/18/crypto/crypto_hkdf.h +65 -0
  42. package/src/headers/18/crypto/crypto_hmac.h +94 -0
  43. package/src/headers/18/crypto/crypto_keygen.h +305 -0
  44. package/src/headers/18/crypto/crypto_keys.h +420 -0
  45. package/src/headers/18/crypto/crypto_pbkdf2.h +76 -0
  46. package/src/headers/18/crypto/crypto_random.h +130 -0
  47. package/src/headers/18/crypto/crypto_rsa.h +141 -0
  48. package/src/headers/18/crypto/crypto_scrypt.h +87 -0
  49. package/src/headers/18/crypto/crypto_sig.h +168 -0
  50. package/src/headers/18/crypto/crypto_spkac.h +21 -0
  51. package/src/headers/18/crypto/crypto_timing.h +20 -0
  52. package/src/headers/{13/tls_wrap.h → 18/crypto/crypto_tls.h} +137 -66
  53. package/src/headers/18/crypto/crypto_util.h +791 -0
  54. package/src/headers/18/crypto/crypto_x509.h +143 -0
  55. package/src/headers/{12 → 18}/debug_utils-inl.h +0 -0
  56. package/src/headers/{13 → 18}/debug_utils.h +7 -4
  57. package/src/headers/{12 → 18}/diagnosticfilename-inl.h +0 -0
  58. package/src/headers/{12 → 18}/env-inl.h +397 -304
  59. package/src/headers/{12 → 18}/env.h +397 -172
  60. package/src/headers/{12 → 18}/handle_wrap.h +7 -3
  61. package/src/headers/18/histogram-inl.h +107 -0
  62. package/src/headers/18/histogram.h +239 -0
  63. package/src/headers/{13 → 18}/inspector_agent.h +4 -7
  64. package/src/headers/{12 → 18}/inspector_io.h +0 -0
  65. package/src/headers/{13 → 18}/inspector_profiler.h +17 -5
  66. package/src/headers/{12 → 18}/inspector_socket.h +0 -0
  67. package/src/headers/{12 → 18}/inspector_socket_server.h +0 -0
  68. package/src/headers/18/js_native_api.h +571 -0
  69. package/src/headers/{13 → 18}/js_native_api_types.h +30 -7
  70. package/src/headers/{12 → 18}/js_native_api_v8.h +220 -83
  71. package/src/headers/{12 → 18}/js_native_api_v8_internals.h +6 -5
  72. package/src/headers/{12 → 18}/js_stream.h +0 -0
  73. package/src/headers/{12 → 18}/json_utils.h +0 -0
  74. package/src/headers/{13 → 18}/memory_tracker-inl.h +6 -5
  75. package/src/headers/{13 → 18}/memory_tracker.h +0 -7
  76. package/src/headers/{13 → 18}/module_wrap.h +24 -7
  77. package/src/headers/{13 → 18}/node.h +329 -68
  78. package/src/headers/18/node_api.h +288 -0
  79. package/src/headers/18/node_api_internals.h +38 -0
  80. package/src/headers/{12 → 18}/node_api_types.h +12 -9
  81. package/src/headers/{12 → 18}/node_binding.h +0 -0
  82. package/src/headers/18/node_blob.h +191 -0
  83. package/src/headers/18/node_bob-inl.h +37 -0
  84. package/src/headers/18/node_bob.h +111 -0
  85. package/src/headers/{13 → 18}/node_buffer.h +0 -0
  86. package/src/headers/{13 → 18}/node_constants.h +5 -1
  87. package/src/headers/{12 → 18}/node_context_data.h +5 -0
  88. package/src/headers/{12 → 18}/node_contextify.h +37 -2
  89. package/src/headers/{10/node_win32_perfctr_provider.h → 18/node_crypto.h} +30 -31
  90. package/src/headers/{12 → 18}/node_dir.h +0 -0
  91. package/src/headers/{12 → 18}/node_dtrace.h +0 -0
  92. package/src/headers/{12 → 18}/node_errors.h +90 -24
  93. package/src/headers/18/node_external_reference.h +145 -0
  94. package/src/headers/{13 → 18}/node_file-inl.h +38 -21
  95. package/src/headers/{12 → 18}/node_file.h +74 -13
  96. package/src/headers/{13 → 18}/node_http2.h +365 -269
  97. package/src/headers/{12 → 18}/node_http2_state.h +40 -50
  98. package/src/headers/{13 → 18}/node_http_common-inl.h +25 -5
  99. package/src/headers/{13 → 18}/node_http_common.h +24 -20
  100. package/src/headers/{13 → 18}/node_i18n.h +2 -1
  101. package/src/headers/{12 → 18}/node_internals.h +39 -41
  102. package/src/headers/{13 → 18}/node_main_instance.h +15 -18
  103. package/src/headers/{12 → 18}/node_mem-inl.h +0 -0
  104. package/src/headers/{12 → 18}/node_mem.h +1 -1
  105. package/src/headers/{13 → 18}/node_messaging.h +170 -23
  106. package/src/headers/{12 → 18}/node_metadata.h +17 -4
  107. package/src/headers/{12 → 18}/node_mutex.h +77 -1
  108. package/src/headers/{12 → 18}/node_native_module.h +11 -1
  109. package/src/headers/{13 → 18}/node_native_module_env.h +14 -8
  110. package/src/headers/{12 → 18}/node_object_wrap.h +0 -0
  111. package/src/headers/{13 → 18}/node_options-inl.h +51 -21
  112. package/src/headers/{13 → 18}/node_options.h +46 -14
  113. package/src/headers/18/node_perf.h +168 -0
  114. package/src/headers/{12 → 18}/node_perf_common.h +16 -22
  115. package/src/headers/{12 → 18}/node_platform.h +21 -16
  116. package/src/headers/18/node_process-inl.h +26 -0
  117. package/src/headers/18/node_process.h +97 -0
  118. package/src/headers/{13 → 18}/node_report.h +2 -2
  119. package/src/headers/{13 → 18}/node_revert.h +10 -0
  120. package/src/headers/{12 → 18}/node_root_certs.h +439 -651
  121. package/src/headers/18/node_snapshot_builder.h +43 -0
  122. package/src/headers/18/node_snapshotable.h +130 -0
  123. package/src/headers/{12 → 18}/node_sockaddr-inl.h +100 -4
  124. package/src/headers/18/node_sockaddr.h +405 -0
  125. package/src/headers/{12 → 18}/node_stat_watcher.h +7 -1
  126. package/src/headers/{12 → 18}/node_union_bytes.h +0 -0
  127. package/src/headers/{13 → 18}/node_url.h +18 -1
  128. package/src/headers/18/node_v8.h +41 -0
  129. package/src/headers/{12 → 18}/node_v8_platform-inl.h +10 -0
  130. package/src/headers/{13 → 18}/node_version.h +7 -7
  131. package/src/headers/{12 → 18}/node_wasi.h +0 -0
  132. package/src/headers/18/node_wasm_web_api.h +55 -0
  133. package/src/headers/{13 → 18}/node_watchdog.h +0 -0
  134. package/src/headers/{10 → 18}/node_win32_etw_provider-inl.h +7 -6
  135. package/src/headers/{10 → 18}/node_win32_etw_provider.h +0 -0
  136. package/src/headers/{13 → 18}/node_worker.h +24 -17
  137. package/src/headers/{12 → 18}/pipe_wrap.h +2 -0
  138. package/src/headers/{12 → 18}/req_wrap-inl.h +0 -0
  139. package/src/headers/{12 → 18}/req_wrap.h +1 -1
  140. package/src/headers/{12 → 18}/spawn_sync.h +0 -0
  141. package/src/headers/{13 → 18}/stream_base-inl.h +58 -22
  142. package/src/headers/{13 → 18}/stream_base.h +29 -3
  143. package/src/headers/{13 → 18}/stream_pipe.h +8 -3
  144. package/src/headers/{12 → 18}/stream_wrap.h +4 -1
  145. package/src/headers/{13 → 18}/string_bytes.h +0 -7
  146. package/src/headers/{12 → 18}/string_decoder-inl.h +0 -0
  147. package/src/headers/{10 → 18}/string_decoder.h +0 -0
  148. package/src/headers/{13 → 18}/string_search.h +2 -2
  149. package/src/headers/{12 → 18}/tcp_wrap.h +4 -0
  150. package/src/headers/{12 → 18}/threadpoolwork-inl.h +0 -0
  151. package/src/headers/18/timer_wrap-inl.h +32 -0
  152. package/src/headers/18/timer_wrap.h +85 -0
  153. package/src/headers/{13 → 18}/tracing/agent.h +1 -1
  154. package/src/headers/{12 → 18}/tracing/node_trace_buffer.h +0 -0
  155. package/src/headers/{12 → 18}/tracing/node_trace_writer.h +0 -0
  156. package/src/headers/{13 → 18}/tracing/trace_event.h +23 -13
  157. package/src/headers/{12 → 18}/tracing/trace_event_common.h +0 -0
  158. package/src/headers/{12 → 18}/tracing/traced_value.h +0 -0
  159. package/src/headers/{13 → 18}/tty_wrap.h +2 -1
  160. package/src/headers/{13 → 18}/udp_wrap.h +5 -0
  161. package/src/headers/{13 → 18}/util-inl.h +69 -15
  162. package/src/headers/{13 → 18}/util.h +93 -31
  163. package/src/headers/18/v8-fast-api-calls.h +939 -0
  164. package/src/headers/{12 → 18}/v8abbr.h +2 -2
  165. package/src/headers/10/aliased_buffer.h +0 -241
  166. package/src/headers/10/async_wrap-inl.h +0 -106
  167. package/src/headers/10/async_wrap.h +0 -218
  168. package/src/headers/10/base64.h +0 -197
  169. package/src/headers/10/base_object-inl.h +0 -132
  170. package/src/headers/10/base_object.h +0 -115
  171. package/src/headers/10/connect_wrap.h +0 -28
  172. package/src/headers/10/connection_wrap.h +0 -30
  173. package/src/headers/10/debug_utils.h +0 -128
  174. package/src/headers/10/env-inl.h +0 -906
  175. package/src/headers/10/env.h +0 -1046
  176. package/src/headers/10/handle_wrap.h +0 -114
  177. package/src/headers/10/inspector_agent.h +0 -137
  178. package/src/headers/10/inspector_io.h +0 -97
  179. package/src/headers/10/inspector_socket.h +0 -59
  180. package/src/headers/10/inspector_socket_server.h +0 -104
  181. package/src/headers/10/js_stream.h +0 -57
  182. package/src/headers/10/memory_tracker-inl.h +0 -318
  183. package/src/headers/10/memory_tracker.h +0 -246
  184. package/src/headers/10/module_wrap.h +0 -100
  185. package/src/headers/10/node.h +0 -863
  186. package/src/headers/10/node_api.h +0 -752
  187. package/src/headers/10/node_api_types.h +0 -171
  188. package/src/headers/10/node_buffer.h +0 -90
  189. package/src/headers/10/node_code_cache.h +0 -17
  190. package/src/headers/10/node_constants.h +0 -74
  191. package/src/headers/10/node_context_data.h +0 -39
  192. package/src/headers/10/node_contextify.h +0 -141
  193. package/src/headers/10/node_counters.h +0 -59
  194. package/src/headers/10/node_crypto.h +0 -699
  195. package/src/headers/10/node_crypto_bio.h +0 -177
  196. package/src/headers/10/node_crypto_clienthello-inl.h +0 -92
  197. package/src/headers/10/node_crypto_clienthello.h +0 -131
  198. package/src/headers/10/node_crypto_groups.h +0 -416
  199. package/src/headers/10/node_dtrace.h +0 -84
  200. package/src/headers/10/node_errors.h +0 -118
  201. package/src/headers/10/node_file.h +0 -373
  202. package/src/headers/10/node_http2.h +0 -1304
  203. package/src/headers/10/node_http2_state.h +0 -158
  204. package/src/headers/10/node_i18n.h +0 -69
  205. package/src/headers/10/node_internals.h +0 -952
  206. package/src/headers/10/node_javascript.h +0 -41
  207. package/src/headers/10/node_messaging.h +0 -219
  208. package/src/headers/10/node_mutex.h +0 -191
  209. package/src/headers/10/node_object_wrap.h +0 -130
  210. package/src/headers/10/node_options-inl.h +0 -444
  211. package/src/headers/10/node_options.h +0 -397
  212. package/src/headers/10/node_perf.h +0 -134
  213. package/src/headers/10/node_perf_common.h +0 -96
  214. package/src/headers/10/node_persistent.h +0 -30
  215. package/src/headers/10/node_platform.h +0 -170
  216. package/src/headers/10/node_revert.h +0 -75
  217. package/src/headers/10/node_root_certs.h +0 -3393
  218. package/src/headers/10/node_stat_watcher.h +0 -65
  219. package/src/headers/10/node_url.h +0 -193
  220. package/src/headers/10/node_version.h +0 -120
  221. package/src/headers/10/node_watchdog.h +0 -114
  222. package/src/headers/10/node_worker.h +0 -94
  223. package/src/headers/10/pipe_wrap.h +0 -76
  224. package/src/headers/10/req_wrap-inl.h +0 -166
  225. package/src/headers/10/req_wrap.h +0 -61
  226. package/src/headers/10/sharedarraybuffer_metadata.h +0 -67
  227. package/src/headers/10/spawn_sync.h +0 -240
  228. package/src/headers/10/stream_base-inl.h +0 -458
  229. package/src/headers/10/stream_base.h +0 -378
  230. package/src/headers/10/stream_pipe.h +0 -72
  231. package/src/headers/10/stream_wrap.h +0 -130
  232. package/src/headers/10/string_bytes.h +0 -126
  233. package/src/headers/10/string_decoder-inl.h +0 -38
  234. package/src/headers/10/string_search.h +0 -620
  235. package/src/headers/10/tcp_wrap.h +0 -99
  236. package/src/headers/10/tls_wrap.h +0 -195
  237. package/src/headers/10/tracing/agent.h +0 -178
  238. package/src/headers/10/tracing/node_trace_buffer.h +0 -83
  239. package/src/headers/10/tracing/node_trace_writer.h +0 -75
  240. package/src/headers/10/tracing/trace_event.h +0 -706
  241. package/src/headers/10/tracing/trace_event_common.h +0 -1102
  242. package/src/headers/10/tracing/traced_value.h +0 -68
  243. package/src/headers/10/tty_wrap.h +0 -63
  244. package/src/headers/10/udp_wrap.h +0 -102
  245. package/src/headers/10/util-inl.h +0 -459
  246. package/src/headers/10/util.h +0 -508
  247. package/src/headers/10/v8abbr.h +0 -121
  248. package/src/headers/12/aliased_buffer.h +0 -263
  249. package/src/headers/12/debug_utils.h +0 -181
  250. package/src/headers/12/histogram-inl.h +0 -83
  251. package/src/headers/12/histogram.h +0 -98
  252. package/src/headers/12/http_parser_adaptor.h +0 -24
  253. package/src/headers/12/inspector_agent.h +0 -147
  254. package/src/headers/12/inspector_profiler.h +0 -137
  255. package/src/headers/12/js_native_api.h +0 -541
  256. package/src/headers/12/js_native_api_types.h +0 -139
  257. package/src/headers/12/memory_tracker-inl.h +0 -339
  258. package/src/headers/12/memory_tracker.h +0 -283
  259. package/src/headers/12/module_wrap.h +0 -99
  260. package/src/headers/12/node.h +0 -887
  261. package/src/headers/12/node_api.h +0 -239
  262. package/src/headers/12/node_buffer.h +0 -92
  263. package/src/headers/12/node_constants.h +0 -80
  264. package/src/headers/12/node_crypto.h +0 -800
  265. package/src/headers/12/node_crypto_bio.h +0 -195
  266. package/src/headers/12/node_crypto_clienthello-inl.h +0 -91
  267. package/src/headers/12/node_crypto_clienthello.h +0 -132
  268. package/src/headers/12/node_file-inl.h +0 -289
  269. package/src/headers/12/node_http2.h +0 -1311
  270. package/src/headers/12/node_http_parser_impl.h +0 -994
  271. package/src/headers/12/node_i18n.h +0 -144
  272. package/src/headers/12/node_main_instance.h +0 -97
  273. package/src/headers/12/node_messaging.h +0 -227
  274. package/src/headers/12/node_native_module_env.h +0 -65
  275. package/src/headers/12/node_options-inl.h +0 -447
  276. package/src/headers/12/node_options.h +0 -479
  277. package/src/headers/12/node_perf.h +0 -181
  278. package/src/headers/12/node_process.h +0 -41
  279. package/src/headers/12/node_report.h +0 -47
  280. package/src/headers/12/node_revert.h +0 -78
  281. package/src/headers/12/node_sockaddr.h +0 -123
  282. package/src/headers/12/node_url.h +0 -188
  283. package/src/headers/12/node_version.h +0 -98
  284. package/src/headers/12/node_watchdog.h +0 -152
  285. package/src/headers/12/node_win32_etw_provider-inl.h +0 -287
  286. package/src/headers/12/node_win32_etw_provider.h +0 -99
  287. package/src/headers/12/node_worker.h +0 -142
  288. package/src/headers/12/sharedarraybuffer_metadata.h +0 -72
  289. package/src/headers/12/stream_base-inl.h +0 -323
  290. package/src/headers/12/stream_base.h +0 -431
  291. package/src/headers/12/stream_pipe.h +0 -72
  292. package/src/headers/12/string_bytes.h +0 -142
  293. package/src/headers/12/string_decoder.h +0 -50
  294. package/src/headers/12/string_search.h +0 -638
  295. package/src/headers/12/tls_wrap.h +0 -221
  296. package/src/headers/12/tracing/agent.h +0 -195
  297. package/src/headers/12/tracing/trace_event.h +0 -710
  298. package/src/headers/12/tty_wrap.h +0 -64
  299. package/src/headers/12/udp_wrap.h +0 -222
  300. package/src/headers/12/util-inl.h +0 -529
  301. package/src/headers/12/util.h +0 -765
  302. package/src/headers/13/async_wrap-inl.h +0 -94
  303. package/src/headers/13/async_wrap.h +0 -224
  304. package/src/headers/13/base64.h +0 -197
  305. package/src/headers/13/base_object-inl.h +0 -353
  306. package/src/headers/13/base_object.h +0 -229
  307. package/src/headers/13/connect_wrap.h +0 -26
  308. package/src/headers/13/connection_wrap.h +0 -30
  309. package/src/headers/13/debug_utils-inl.h +0 -223
  310. package/src/headers/13/diagnosticfilename-inl.h +0 -33
  311. package/src/headers/13/env-inl.h +0 -1293
  312. package/src/headers/13/env.h +0 -1469
  313. package/src/headers/13/handle_wrap.h +0 -117
  314. package/src/headers/13/histogram-inl.h +0 -83
  315. package/src/headers/13/histogram.h +0 -98
  316. package/src/headers/13/inspector_io.h +0 -78
  317. package/src/headers/13/inspector_socket.h +0 -60
  318. package/src/headers/13/inspector_socket_server.h +0 -110
  319. package/src/headers/13/js_native_api.h +0 -541
  320. package/src/headers/13/js_native_api_v8.h +0 -303
  321. package/src/headers/13/js_native_api_v8_internals.h +0 -38
  322. package/src/headers/13/js_stream.h +0 -52
  323. package/src/headers/13/json_utils.h +0 -160
  324. package/src/headers/13/node_api.h +0 -239
  325. package/src/headers/13/node_api_types.h +0 -44
  326. package/src/headers/13/node_binding.h +0 -99
  327. package/src/headers/13/node_context_data.h +0 -39
  328. package/src/headers/13/node_contextify.h +0 -161
  329. package/src/headers/13/node_crypto.h +0 -800
  330. package/src/headers/13/node_crypto_common.h +0 -138
  331. package/src/headers/13/node_crypto_groups.h +0 -415
  332. package/src/headers/13/node_dir.h +0 -52
  333. package/src/headers/13/node_dtrace.h +0 -86
  334. package/src/headers/13/node_errors.h +0 -210
  335. package/src/headers/13/node_file.h +0 -364
  336. package/src/headers/13/node_http2_state.h +0 -144
  337. package/src/headers/13/node_internals.h +0 -405
  338. package/src/headers/13/node_mem-inl.h +0 -112
  339. package/src/headers/13/node_mem.h +0 -41
  340. package/src/headers/13/node_metadata.h +0 -109
  341. package/src/headers/13/node_mutex.h +0 -247
  342. package/src/headers/13/node_native_module.h +0 -99
  343. package/src/headers/13/node_object_wrap.h +0 -132
  344. package/src/headers/13/node_perf.h +0 -181
  345. package/src/headers/13/node_perf_common.h +0 -97
  346. package/src/headers/13/node_platform.h +0 -190
  347. package/src/headers/13/node_process.h +0 -41
  348. package/src/headers/13/node_root_certs.h +0 -3424
  349. package/src/headers/13/node_sockaddr-inl.h +0 -170
  350. package/src/headers/13/node_sockaddr.h +0 -123
  351. package/src/headers/13/node_stat_watcher.h +0 -66
  352. package/src/headers/13/node_union_bytes.h +0 -103
  353. package/src/headers/13/node_v8_platform-inl.h +0 -184
  354. package/src/headers/13/node_wasi.h +0 -108
  355. package/src/headers/13/node_win32_etw_provider-inl.h +0 -287
  356. package/src/headers/13/node_win32_etw_provider.h +0 -99
  357. package/src/headers/13/pipe_wrap.h +0 -78
  358. package/src/headers/13/req_wrap-inl.h +0 -170
  359. package/src/headers/13/req_wrap.h +0 -77
  360. package/src/headers/13/spawn_sync.h +0 -242
  361. package/src/headers/13/stream_wrap.h +0 -130
  362. package/src/headers/13/string_decoder-inl.h +0 -37
  363. package/src/headers/13/string_decoder.h +0 -50
  364. package/src/headers/13/tcp_wrap.h +0 -101
  365. package/src/headers/13/threadpoolwork-inl.h +0 -57
  366. package/src/headers/13/tracing/node_trace_buffer.h +0 -83
  367. package/src/headers/13/tracing/node_trace_writer.h +0 -75
  368. package/src/headers/13/tracing/trace_event_common.h +0 -1109
  369. package/src/headers/13/tracing/traced_value.h +0 -70
  370. package/src/headers/13/v8abbr.h +0 -124
@@ -1,287 +0,0 @@
1
- // Copyright Joyent, Inc. and other Node contributors.
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a
4
- // copy of this software and associated documentation files (the
5
- // "Software"), to deal in the Software without restriction, including
6
- // without limitation the rights to use, copy, modify, merge, publish,
7
- // distribute, sublicense, and/or sell copies of the Software, and to permit
8
- // persons to whom the Software is furnished to do so, subject to the
9
- // following conditions:
10
- //
11
- // The above copyright notice and this permission notice shall be included
12
- // in all copies or substantial portions of the Software.
13
- //
14
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
17
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
19
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
21
-
22
- #ifndef SRC_NODE_WIN32_ETW_PROVIDER_INL_H_
23
- #define SRC_NODE_WIN32_ETW_PROVIDER_INL_H_
24
-
25
- #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
26
-
27
- #include "node_win32_etw_provider.h"
28
- #include "node_etw_provider.h"
29
-
30
- namespace node {
31
-
32
- // From node_win32_etw_provider.cc
33
- extern REGHANDLE node_provider;
34
- extern EventWriteFunc event_write;
35
- extern int events_enabled;
36
-
37
- #define ETW_WRITE_STRING_DATA(data_descriptor, data) \
38
- EventDataDescCreate(data_descriptor, \
39
- data, \
40
- (strlen(data) + 1) * sizeof(*data));
41
-
42
- #define ETW_WRITE_INT32_DATA(data_descriptor, data) \
43
- EventDataDescCreate(data_descriptor, data, sizeof(int32_t));
44
-
45
- #define ETW_WRITE_INT64_DATA(data_descriptor, data) \
46
- EventDataDescCreate(data_descriptor, data, sizeof(int64_t));
47
-
48
- #define ETW_WRITE_ADDRESS_DATA(data_descriptor, data) \
49
- EventDataDescCreate(data_descriptor, data, sizeof(intptr_t));
50
-
51
- #define ETW_WRITE_INT16_DATA(data_descriptor, data) \
52
- EventDataDescCreate(data_descriptor, data, sizeof(int16_t));
53
-
54
- #define ETW_WRITE_WSTRING_DATA_LENGTH(data_descriptor, data, data_len_bytes) \
55
- EventDataDescCreate(data_descriptor, \
56
- data, \
57
- data_len_bytes);
58
-
59
- #define ETW_WRITE_NET_CONNECTION(descriptors, conn) \
60
- ETW_WRITE_INT32_DATA(descriptors, &conn->fd); \
61
- ETW_WRITE_INT32_DATA(descriptors + 1, &conn->port); \
62
- ETW_WRITE_STRING_DATA(descriptors + 2, conn->remote); \
63
- ETW_WRITE_INT32_DATA(descriptors + 3, &conn->buffered);
64
-
65
- #define ETW_WRITE_HTTP_SERVER_REQUEST(descriptors, req) \
66
- ETW_WRITE_STRING_DATA(descriptors, req->url); \
67
- ETW_WRITE_STRING_DATA(descriptors + 1, req->method); \
68
- ETW_WRITE_STRING_DATA(descriptors + 2, req->forwardedFor);
69
-
70
- #define ETW_WRITE_HTTP_CLIENT_REQUEST(descriptors, req) \
71
- ETW_WRITE_STRING_DATA(descriptors, req->url); \
72
- ETW_WRITE_STRING_DATA(descriptors + 1, req->method);
73
-
74
- #define ETW_WRITE_GC(descriptors, type, flags) \
75
- ETW_WRITE_INT32_DATA(descriptors, &type); \
76
- ETW_WRITE_INT32_DATA(descriptors + 1, &flags);
77
-
78
- #define ETW_WRITE_V8ADDRESSCHANGE(descriptors, addr1, addr2) \
79
- ETW_WRITE_ADDRESS_DATA(descriptors, &addr1); \
80
- ETW_WRITE_ADDRESS_DATA(descriptors + 1, &addr2);
81
-
82
- #define ETW_WRITE_JSMETHOD_LOADUNLOAD(descriptors, \
83
- context, \
84
- startAddr, \
85
- size, \
86
- id, \
87
- flags, \
88
- rangeId, \
89
- sourceId, \
90
- line, \
91
- col, \
92
- name, \
93
- name_len_bytes) \
94
- ETW_WRITE_ADDRESS_DATA(descriptors, &context); \
95
- ETW_WRITE_ADDRESS_DATA(descriptors + 1, &startAddr); \
96
- ETW_WRITE_INT64_DATA(descriptors + 2, &size); \
97
- ETW_WRITE_INT32_DATA(descriptors + 3, &id); \
98
- ETW_WRITE_INT16_DATA(descriptors + 4, &flags); \
99
- ETW_WRITE_INT16_DATA(descriptors + 5, &rangeId); \
100
- ETW_WRITE_INT64_DATA(descriptors + 6, &sourceId); \
101
- ETW_WRITE_INT32_DATA(descriptors + 7, &line); \
102
- ETW_WRITE_INT32_DATA(descriptors + 8, &col); \
103
- ETW_WRITE_WSTRING_DATA_LENGTH(descriptors + 9, name, name_len_bytes);
104
-
105
-
106
- #define ETW_WRITE_EVENT(eventDescriptor, dataDescriptors) \
107
- DWORD status = event_write(node_provider, \
108
- &eventDescriptor, \
109
- sizeof(dataDescriptors) / \
110
- sizeof(*dataDescriptors), \
111
- dataDescriptors); \
112
- CHECK_EQ(status, ERROR_SUCCESS);
113
-
114
- #define ETW_WRITE_EMPTY_EVENT(eventDescriptor) \
115
- DWORD status = event_write(node_provider, \
116
- &eventDescriptor, \
117
- 0, \
118
- NULL); // NOLINT (readability/null_usage) \
119
- CHECK_EQ(status, ERROR_SUCCESS);
120
-
121
-
122
- void NODE_HTTP_SERVER_REQUEST(node_dtrace_http_server_request_t* req,
123
- node_dtrace_connection_t* conn, const char* remote, int port,
124
- const char* method, const char* url, int fd) {
125
- EVENT_DATA_DESCRIPTOR descriptors[7];
126
- ETW_WRITE_HTTP_SERVER_REQUEST(descriptors, req);
127
- ETW_WRITE_NET_CONNECTION(descriptors + 3, conn);
128
- ETW_WRITE_EVENT(NODE_HTTP_SERVER_REQUEST_EVENT, descriptors);
129
- }
130
-
131
-
132
- void NODE_HTTP_SERVER_RESPONSE(node_dtrace_connection_t* conn,
133
- const char* remote, int port, int fd) {
134
- EVENT_DATA_DESCRIPTOR descriptors[4];
135
- ETW_WRITE_NET_CONNECTION(descriptors, conn);
136
- ETW_WRITE_EVENT(NODE_HTTP_SERVER_RESPONSE_EVENT, descriptors);
137
- }
138
-
139
-
140
- void NODE_HTTP_CLIENT_REQUEST(node_dtrace_http_client_request_t* req,
141
- node_dtrace_connection_t* conn, const char* remote, int port,
142
- const char* method, const char* url, int fd) {
143
- EVENT_DATA_DESCRIPTOR descriptors[6];
144
- ETW_WRITE_HTTP_CLIENT_REQUEST(descriptors, req);
145
- ETW_WRITE_NET_CONNECTION(descriptors + 2, conn);
146
- ETW_WRITE_EVENT(NODE_HTTP_CLIENT_REQUEST_EVENT, descriptors);
147
- }
148
-
149
-
150
- void NODE_HTTP_CLIENT_RESPONSE(node_dtrace_connection_t* conn,
151
- const char* remote, int port, int fd) {
152
- EVENT_DATA_DESCRIPTOR descriptors[4];
153
- ETW_WRITE_NET_CONNECTION(descriptors, conn);
154
- ETW_WRITE_EVENT(NODE_HTTP_CLIENT_RESPONSE_EVENT, descriptors);
155
- }
156
-
157
-
158
- void NODE_NET_SERVER_CONNECTION(node_dtrace_connection_t* conn,
159
- const char* remote, int port, int fd) {
160
- EVENT_DATA_DESCRIPTOR descriptors[4];
161
- ETW_WRITE_NET_CONNECTION(descriptors, conn);
162
- ETW_WRITE_EVENT(NODE_NET_SERVER_CONNECTION_EVENT, descriptors);
163
- }
164
-
165
-
166
- void NODE_NET_STREAM_END(node_dtrace_connection_t* conn,
167
- const char* remote, int port, int fd) {
168
- EVENT_DATA_DESCRIPTOR descriptors[4];
169
- ETW_WRITE_NET_CONNECTION(descriptors, conn);
170
- ETW_WRITE_EVENT(NODE_NET_STREAM_END_EVENT, descriptors);
171
- }
172
-
173
-
174
- void NODE_GC_START(v8::GCType type,
175
- v8::GCCallbackFlags flags,
176
- v8::Isolate* isolate) {
177
- if (events_enabled > 0) {
178
- EVENT_DATA_DESCRIPTOR descriptors[2];
179
- ETW_WRITE_GC(descriptors, type, flags);
180
- ETW_WRITE_EVENT(NODE_GC_START_EVENT, descriptors);
181
- }
182
- }
183
-
184
-
185
- void NODE_GC_DONE(v8::GCType type,
186
- v8::GCCallbackFlags flags,
187
- v8::Isolate* isolate) {
188
- if (events_enabled > 0) {
189
- EVENT_DATA_DESCRIPTOR descriptors[2];
190
- ETW_WRITE_GC(descriptors, type, flags);
191
- ETW_WRITE_EVENT(NODE_GC_DONE_EVENT, descriptors);
192
- }
193
- }
194
-
195
-
196
- void NODE_V8SYMBOL_REMOVE(const void* addr1, const void* addr2) {
197
- if (events_enabled > 0) {
198
- EVENT_DATA_DESCRIPTOR descriptors[2];
199
- ETW_WRITE_V8ADDRESSCHANGE(descriptors, addr1, addr2);
200
- ETW_WRITE_EVENT(NODE_V8SYMBOL_REMOVE_EVENT, descriptors);
201
- }
202
- }
203
-
204
-
205
- void NODE_V8SYMBOL_MOVE(const void* addr1, const void* addr2) {
206
- if (events_enabled > 0) {
207
- EVENT_DATA_DESCRIPTOR descriptors[2];
208
- ETW_WRITE_V8ADDRESSCHANGE(descriptors, addr1, addr2);
209
- ETW_WRITE_EVENT(NODE_V8SYMBOL_MOVE_EVENT, descriptors);
210
- }
211
- }
212
-
213
-
214
- void NODE_V8SYMBOL_RESET() {
215
- if (events_enabled > 0) {
216
- ETW_WRITE_EMPTY_EVENT(NODE_V8SYMBOL_RESET_EVENT);
217
- }
218
- }
219
-
220
- #define SETSYMBUF(s) \
221
- wcscpy(symbuf, s); \
222
- symbol_len = arraysize(s) - 1;
223
-
224
- void NODE_V8SYMBOL_ADD(LPCSTR symbol,
225
- int symbol_len,
226
- const void* addr1,
227
- int len) {
228
- if (events_enabled > 0) {
229
- wchar_t symbuf[128];
230
- if (symbol == nullptr) {
231
- SETSYMBUF(L"nullptr");
232
- } else {
233
- symbol_len = MultiByteToWideChar(CP_ACP,
234
- 0,
235
- symbol,
236
- symbol_len,
237
- symbuf,
238
- 128);
239
- if (symbol_len == 0) {
240
- SETSYMBUF(L"Invalid");
241
- } else {
242
- if (symbol_len > 127) {
243
- symbol_len = 127;
244
- }
245
- symbuf[symbol_len] = L'\0';
246
- }
247
- }
248
- void* context = nullptr;
249
- INT64 size = (INT64)len;
250
- INT32 id = (INT32)addr1;
251
- INT16 flags = 0;
252
- INT16 rangeid = 1;
253
- INT32 col = 1;
254
- INT32 line = 1;
255
- INT64 sourceid = 0;
256
- EVENT_DATA_DESCRIPTOR descriptors[10];
257
- ETW_WRITE_JSMETHOD_LOADUNLOAD(descriptors,
258
- context,
259
- addr1,
260
- size,
261
- id,
262
- flags,
263
- rangeid,
264
- sourceid,
265
- line,
266
- col,
267
- symbuf,
268
- (symbol_len + 1) * sizeof(symbuf[0]));
269
- ETW_WRITE_EVENT(MethodLoad, descriptors);
270
- }
271
- }
272
- #undef SETSYMBUF
273
-
274
-
275
- bool NODE_HTTP_SERVER_REQUEST_ENABLED() { return events_enabled > 0; }
276
- bool NODE_HTTP_SERVER_RESPONSE_ENABLED() { return events_enabled > 0; }
277
- bool NODE_HTTP_CLIENT_REQUEST_ENABLED() { return events_enabled > 0; }
278
- bool NODE_HTTP_CLIENT_RESPONSE_ENABLED() { return events_enabled > 0; }
279
- bool NODE_NET_SERVER_CONNECTION_ENABLED() { return events_enabled > 0; }
280
- bool NODE_NET_STREAM_END_ENABLED() { return events_enabled > 0; }
281
- bool NODE_V8SYMBOL_ENABLED() { return events_enabled > 0; }
282
-
283
- } // namespace node
284
-
285
- #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
286
-
287
- #endif // SRC_NODE_WIN32_ETW_PROVIDER_INL_H_
@@ -1,99 +0,0 @@
1
- // Copyright Joyent, Inc. and other Node contributors.
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a
4
- // copy of this software and associated documentation files (the
5
- // "Software"), to deal in the Software without restriction, including
6
- // without limitation the rights to use, copy, modify, merge, publish,
7
- // distribute, sublicense, and/or sell copies of the Software, and to permit
8
- // persons to whom the Software is furnished to do so, subject to the
9
- // following conditions:
10
- //
11
- // The above copyright notice and this permission notice shall be included
12
- // in all copies or substantial portions of the Software.
13
- //
14
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15
- // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
17
- // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18
- // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
19
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
21
-
22
- #ifndef SRC_NODE_WIN32_ETW_PROVIDER_H_
23
- #define SRC_NODE_WIN32_ETW_PROVIDER_H_
24
-
25
- #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
26
-
27
- #include "node_dtrace.h"
28
- #include <evntprov.h>
29
-
30
- namespace node {
31
-
32
- #if defined(_MSC_VER)
33
- # define INLINE __forceinline
34
- #else
35
- # define INLINE inline
36
- #endif
37
-
38
- typedef ULONG (NTAPI* EventRegisterFunc)(
39
- LPCGUID ProviderId,
40
- PENABLECALLBACK EnableCallback,
41
- PVOID CallbackContext,
42
- PREGHANDLE RegHandle
43
- );
44
-
45
- typedef ULONG (NTAPI* EventUnregisterFunc)(
46
- REGHANDLE RegHandle
47
- );
48
-
49
- typedef ULONG (NTAPI* EventWriteFunc)(
50
- REGHANDLE RegHandle,
51
- PCEVENT_DESCRIPTOR EventDescriptor,
52
- ULONG UserDataCount,
53
- PEVENT_DATA_DESCRIPTOR UserData
54
- );
55
-
56
- void init_etw();
57
- void shutdown_etw();
58
-
59
- INLINE void NODE_HTTP_SERVER_REQUEST(node_dtrace_http_server_request_t* req,
60
- node_dtrace_connection_t* conn, const char* remote, int port,
61
- const char* method, const char* url, int fd);
62
- INLINE void NODE_HTTP_SERVER_RESPONSE(node_dtrace_connection_t* conn,
63
- const char* remote, int port, int fd);
64
- INLINE void NODE_HTTP_CLIENT_REQUEST(node_dtrace_http_client_request_t* req,
65
- node_dtrace_connection_t* conn, const char* remote, int port,
66
- const char* method, const char* url, int fd);
67
- INLINE void NODE_HTTP_CLIENT_RESPONSE(node_dtrace_connection_t* conn,
68
- const char* remote, int port, int fd);
69
- INLINE void NODE_NET_SERVER_CONNECTION(node_dtrace_connection_t* conn,
70
- const char* remote, int port, int fd);
71
- INLINE void NODE_NET_STREAM_END(node_dtrace_connection_t* conn,
72
- const char* remote, int port, int fd);
73
- INLINE void NODE_GC_START(v8::GCType type,
74
- v8::GCCallbackFlags flags,
75
- v8::Isolate* isolate);
76
- INLINE void NODE_GC_DONE(v8::GCType type,
77
- v8::GCCallbackFlags flags,
78
- v8::Isolate* isolate);
79
- INLINE void NODE_V8SYMBOL_REMOVE(const void* addr1, const void* addr2);
80
- INLINE void NODE_V8SYMBOL_MOVE(const void* addr1, const void* addr2);
81
- INLINE void NODE_V8SYMBOL_RESET();
82
- INLINE void NODE_V8SYMBOL_ADD(LPCSTR symbol,
83
- int symbol_len,
84
- const void* addr1,
85
- int len);
86
-
87
- INLINE bool NODE_HTTP_SERVER_REQUEST_ENABLED();
88
- INLINE bool NODE_HTTP_SERVER_RESPONSE_ENABLED();
89
- INLINE bool NODE_HTTP_CLIENT_REQUEST_ENABLED();
90
- INLINE bool NODE_HTTP_CLIENT_RESPONSE_ENABLED();
91
- INLINE bool NODE_NET_SERVER_CONNECTION_ENABLED();
92
- INLINE bool NODE_NET_STREAM_END_ENABLED();
93
- INLINE bool NODE_V8SYMBOL_ENABLED();
94
-
95
- } // namespace node
96
-
97
- #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
98
-
99
- #endif // SRC_NODE_WIN32_ETW_PROVIDER_H_
@@ -1,142 +0,0 @@
1
- #ifndef SRC_NODE_WORKER_H_
2
- #define SRC_NODE_WORKER_H_
3
-
4
- #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
-
6
- #include <unordered_map>
7
- #include "node_messaging.h"
8
- #include "uv.h"
9
-
10
- namespace node {
11
- namespace worker {
12
-
13
- class WorkerThreadData;
14
-
15
- enum ResourceLimits {
16
- kMaxYoungGenerationSizeMb,
17
- kMaxOldGenerationSizeMb,
18
- kCodeRangeSizeMb,
19
- kTotalResourceLimitCount
20
- };
21
-
22
- // A worker thread, as represented in its parent thread.
23
- class Worker : public AsyncWrap {
24
- public:
25
- Worker(Environment* env,
26
- v8::Local<v8::Object> wrap,
27
- const std::string& url,
28
- std::shared_ptr<PerIsolateOptions> per_isolate_opts,
29
- std::vector<std::string>&& exec_argv,
30
- std::shared_ptr<KVStore> env_vars);
31
- ~Worker() override;
32
-
33
- // Run the worker. This is only called from the worker thread.
34
- void Run();
35
-
36
- // Forcibly exit the thread with a specified exit code. This may be called
37
- // from any thread.
38
- void Exit(int code);
39
-
40
- // Wait for the worker thread to stop (in a blocking manner).
41
- void JoinThread();
42
-
43
- template <typename Fn>
44
- inline bool RequestInterrupt(Fn&& cb);
45
-
46
- void MemoryInfo(MemoryTracker* tracker) const override;
47
- SET_MEMORY_INFO_NAME(Worker)
48
- SET_SELF_SIZE(Worker)
49
-
50
- bool is_stopped() const;
51
- std::shared_ptr<ArrayBufferAllocator> array_buffer_allocator();
52
-
53
- static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
54
- static void CloneParentEnvVars(
55
- const v8::FunctionCallbackInfo<v8::Value>& args);
56
- static void SetEnvVars(const v8::FunctionCallbackInfo<v8::Value>& args);
57
- static void StartThread(const v8::FunctionCallbackInfo<v8::Value>& args);
58
- static void StopThread(const v8::FunctionCallbackInfo<v8::Value>& args);
59
- static void Ref(const v8::FunctionCallbackInfo<v8::Value>& args);
60
- static void Unref(const v8::FunctionCallbackInfo<v8::Value>& args);
61
- static void GetResourceLimits(
62
- const v8::FunctionCallbackInfo<v8::Value>& args);
63
- v8::Local<v8::Float64Array> GetResourceLimits(v8::Isolate* isolate) const;
64
- static void TakeHeapSnapshot(const v8::FunctionCallbackInfo<v8::Value>& args);
65
-
66
- private:
67
- void CreateEnvMessagePort(Environment* env);
68
- static size_t NearHeapLimit(void* data, size_t current_heap_limit,
69
- size_t initial_heap_limit);
70
-
71
- std::shared_ptr<PerIsolateOptions> per_isolate_opts_;
72
- std::vector<std::string> exec_argv_;
73
- std::vector<std::string> argv_;
74
-
75
- MultiIsolatePlatform* platform_;
76
- std::shared_ptr<ArrayBufferAllocator> array_buffer_allocator_;
77
- v8::Isolate* isolate_ = nullptr;
78
- bool start_profiler_idle_notifier_;
79
- uv_thread_t tid_;
80
-
81
- #if HAVE_INSPECTOR
82
- std::unique_ptr<inspector::ParentInspectorHandle> inspector_parent_handle_;
83
- #endif
84
-
85
- // This mutex protects access to all variables listed below it.
86
- mutable Mutex mutex_;
87
-
88
- bool thread_joined_ = true;
89
- const char* custom_error_ = nullptr;
90
- std::string custom_error_str_;
91
- int exit_code_ = 0;
92
- uint64_t thread_id_ = -1;
93
- uintptr_t stack_base_ = 0;
94
-
95
- // Custom resource constraints:
96
- double resource_limits_[kTotalResourceLimitCount];
97
- void UpdateResourceConstraints(v8::ResourceConstraints* constraints);
98
-
99
- // Full size of the thread's stack.
100
- static constexpr size_t kStackSize = 4 * 1024 * 1024;
101
- // Stack buffer size that is not available to the JS engine.
102
- static constexpr size_t kStackBufferSize = 192 * 1024;
103
-
104
- std::unique_ptr<MessagePortData> child_port_data_;
105
- std::shared_ptr<KVStore> env_vars_;
106
-
107
- // This is always kept alive because the JS object associated with the Worker
108
- // instance refers to it via its [kPort] property.
109
- MessagePort* parent_port_ = nullptr;
110
-
111
- // A raw flag that is used by creator and worker threads to
112
- // sync up on pre-mature termination of worker - while in the
113
- // warmup phase. Once the worker is fully warmed up, use the
114
- // async handle of the worker's Environment for the same purpose.
115
- bool stopped_ = true;
116
-
117
- bool has_ref_ = true;
118
-
119
- // The real Environment of the worker object. It has a lesser
120
- // lifespan than the worker object itself - comes to life
121
- // when the worker thread creates a new Environment, and gets
122
- // destroyed alongwith the worker thread.
123
- Environment* env_ = nullptr;
124
-
125
- friend class WorkerThreadData;
126
- };
127
-
128
- template <typename Fn>
129
- bool Worker::RequestInterrupt(Fn&& cb) {
130
- Mutex::ScopedLock lock(mutex_);
131
- if (env_ == nullptr) return false;
132
- env_->RequestInterrupt(std::move(cb));
133
- return true;
134
- }
135
-
136
- } // namespace worker
137
- } // namespace node
138
-
139
- #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
140
-
141
-
142
- #endif // SRC_NODE_WORKER_H_
@@ -1,72 +0,0 @@
1
- #ifndef SRC_SHAREDARRAYBUFFER_METADATA_H_
2
- #define SRC_SHAREDARRAYBUFFER_METADATA_H_
3
-
4
- #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
-
6
- #include "node.h"
7
- #include <memory>
8
-
9
- namespace node {
10
- namespace worker {
11
-
12
- class SharedArrayBufferMetadata;
13
-
14
- // This is an object associated with a SharedArrayBuffer, which keeps track
15
- // of a cross-thread reference count. Once a SharedArrayBuffer is transferred
16
- // for the first time (or is attempted to be transferred), one of these objects
17
- // is created, and the SharedArrayBuffer is moved from internalized mode into
18
- // externalized mode (i.e. the JS engine no longer frees the memory on its own).
19
- //
20
- // This will always be referred to using a std::shared_ptr, since it keeps
21
- // a reference count and is guaranteed to be thread-safe.
22
- typedef std::shared_ptr<SharedArrayBufferMetadata>
23
- SharedArrayBufferMetadataReference;
24
-
25
- class SharedArrayBufferMetadata
26
- : public std::enable_shared_from_this<SharedArrayBufferMetadata> {
27
- public:
28
- static SharedArrayBufferMetadataReference ForSharedArrayBuffer(
29
- Environment* env,
30
- v8::Local<v8::Context> context,
31
- v8::Local<v8::SharedArrayBuffer> source);
32
- ~SharedArrayBufferMetadata();
33
-
34
- // Create a SharedArrayBuffer object for a specific Environment and Context.
35
- // The created SharedArrayBuffer will be in externalized mode and has
36
- // a hidden object attached to it, during whose lifetime the reference
37
- // count is increased by 1.
38
- v8::MaybeLocal<v8::SharedArrayBuffer> GetSharedArrayBuffer(
39
- Environment* env, v8::Local<v8::Context> context);
40
- std::shared_ptr<v8::ArrayBuffer::Allocator> allocator() const {
41
- return allocator_;
42
- }
43
-
44
- SharedArrayBufferMetadata(SharedArrayBufferMetadata&& other) = delete;
45
- SharedArrayBufferMetadata& operator=(
46
- SharedArrayBufferMetadata&& other) = delete;
47
- SharedArrayBufferMetadata& operator=(
48
- const SharedArrayBufferMetadata&) = delete;
49
- SharedArrayBufferMetadata(const SharedArrayBufferMetadata&) = delete;
50
-
51
- private:
52
- SharedArrayBufferMetadata(
53
- const v8::SharedArrayBuffer::Contents&,
54
- std::shared_ptr<v8::ArrayBuffer::Allocator>);
55
-
56
- // Attach a lifetime tracker object with a reference count to `target`.
57
- v8::Maybe<bool> AssignToSharedArrayBuffer(
58
- Environment* env,
59
- v8::Local<v8::Context> context,
60
- v8::Local<v8::SharedArrayBuffer> target);
61
-
62
- v8::SharedArrayBuffer::Contents contents_;
63
- std::shared_ptr<v8::ArrayBuffer::Allocator> allocator_;
64
- };
65
-
66
- } // namespace worker
67
- } // namespace node
68
-
69
- #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
70
-
71
-
72
- #endif // SRC_SHAREDARRAYBUFFER_METADATA_H_