1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-01 16:51:13 -05:00
denoland-deno/ext
Bartek Iwańczuk 220a7d544a
refactor(core): use JoinSet instead of FuturesUnordered (#19378)
This commit migrates "deno_core" from using "FuturesUnordered" to
"tokio::task::JoinSet". This makes every op to be a separate Tokio task
and should unlock better utilization of kqueue/epoll.

There were two quirks added to this PR:
- because of the fact that "JoinSet" immediately polls spawn tasks,
op sanitizers can give false positives in some cases, this was
alleviated by polling event loop once before running a test with 
"deno test", which gives canceled ops an opportunity to settle
- "JsRuntimeState::waker" was moved to "OpState::waker" so that FFI
API can still use threadsafe functions - without this change the
registered wakers were wrong as they would not wake up the 
whole "JsRuntime" but the task associated with an op

---------

Co-authored-by: Matt Mastracci <matthew@mastracci.com>
2023-06-09 01:13:25 +02:00
..
broadcast_channel 1.34.1 (#19310) 2023-05-30 01:30:46 +02:00
cache chore: update deno_lint to 0.46.0 (#19372) 2023-06-09 01:13:22 +02:00
console fix(ext/console): fix inspecting large ArrayBuffers (#19373) 2023-06-09 01:13:23 +02:00
crypto fix(ext/crypto): fix JWK import of Ed25519 (#19279) 2023-06-09 01:13:22 +02:00
fetch chore: update deno_lint to 0.46.0 (#19372) 2023-06-09 01:13:22 +02:00
ffi refactor(core): use JoinSet instead of FuturesUnordered (#19378) 2023-06-09 01:13:25 +02:00
fs refactor(core): ensureFastOps is an op-generating proxy (#19377) 2023-06-09 01:13:23 +02:00
http perf(http): avoid flattening http headers (#19384) 2023-06-09 01:13:24 +02:00
io 1.34.1 (#19310) 2023-05-30 01:30:46 +02:00
kv fix(kv) run sqlite transactions via spawn_blocking (#19350) 2023-06-09 01:13:21 +02:00
napi 1.34.1 (#19310) 2023-05-30 01:30:46 +02:00
net chore: upgrade to Rust 1.70.0 (#19345) 2023-06-09 01:13:23 +02:00
node fix(node/http): use fake socket and proper url handling (#19340) 2023-06-09 01:13:24 +02:00
tls 1.34.1 (#19310) 2023-05-30 01:30:46 +02:00
url chore: update deno_lint to 0.46.0 (#19372) 2023-06-09 01:13:22 +02:00
web refactor(core): ensureFastOps is an op-generating proxy (#19377) 2023-06-09 01:13:23 +02:00
webidl perf: optimize RegExp usage in JS (#19364) 2023-06-09 01:13:21 +02:00
websocket perf(ext/websocket): monomorphize code (#19394) 2023-06-09 01:13:25 +02:00
webstorage 1.34.1 (#19310) 2023-05-30 01:30:46 +02:00