0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-10-29 08:58:01 -04:00
denoland-deno/ext
Bartek Iwańczuk 19f82b0eaa
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-07 23:50:14 +02:00
..
broadcast_channel chore: forward v1.34.1 to main (#19312) 2023-05-29 20:26:03 -06:00
cache chore: update deno_lint to 0.46.0 (#19372) 2023-06-05 15:57:01 -04:00
console fix(ext/console): fix inspecting large ArrayBuffers (#19373) 2023-06-06 11:06:00 +02:00
crypto fix(ext/crypto): fix JWK import of Ed25519 (#19279) 2023-06-05 14:52:02 +02:00
fetch chore: update deno_lint to 0.46.0 (#19372) 2023-06-05 15:57:01 -04:00
ffi refactor(core): use JoinSet instead of FuturesUnordered (#19378) 2023-06-07 23:50:14 +02:00
fs refactor(core): ensureFastOps is an op-generating proxy (#19377) 2023-06-06 11:01:28 +02:00
http perf(http): avoid flattening http headers (#19384) 2023-06-06 16:55:37 +02:00
io chore: forward v1.34.1 to main (#19312) 2023-05-29 20:26:03 -06:00
kv fix(kv) run sqlite transactions via spawn_blocking (#19350) 2023-06-02 11:12:26 -07:00
napi chore: forward v1.34.1 to main (#19312) 2023-05-29 20:26:03 -06:00
net chore: upgrade to Rust 1.70.0 (#19345) 2023-06-06 00:35:39 +00:00
node fix(node/http): use fake socket and proper url handling (#19340) 2023-06-06 14:37:10 +00:00
tls chore: forward v1.34.1 to main (#19312) 2023-05-29 20:26:03 -06:00
url chore: update deno_lint to 0.46.0 (#19372) 2023-06-05 15:57:01 -04:00
web refactor(core): ensureFastOps is an op-generating proxy (#19377) 2023-06-06 11:01:28 +02:00
webidl perf: optimize RegExp usage in JS (#19364) 2023-06-05 10:52:40 +02:00
websocket perf(ext/websocket): monomorphize code (#19394) 2023-06-07 11:54:49 +02:00
webstorage chore: forward v1.34.1 to main (#19312) 2023-05-29 20:26:03 -06:00