Node.js Worker Threads Are Problematic, but They Work Great for Us, by @inngest.com:

https://www.inngest.com/blog/node-worker-threads

#nodejs #workerthreads #eventloop

Node.js worker threads are problematic, but they work great for us - Inngest Blog

Worker threads solve real problems, but they come with constraints that Go, Rust, and Python developers would never expect. Here's what we learned moving Inngest Connect's internals off the main thread.

Event Loop для начинающих. Не так страшно, как вам рассказывали

JavaScript выполняет код в одном основном потоке. Это означает, что инструкции выполняются последовательно — одна за другой. Получил команду — выполнил. Но что делать интерпретатору, если он встречает код, который не может выполнить сразу? Например, обработчик события. Пока событие, допустим, клик на кнопку, не произошло, код внутри обработчика не выполнится. Такой код называют асинхронным. К асинхронным операциям относятся, например, таймеры ( setTimeout ), сетевые запросы или события интерфейса. Промисы ( Promise ) используются для обработки результатов таких операций. В такой ситуации на помощь интерпретатору JS приходит среда, в которой выполняется скрипт. Это может быть Node.js, мобильные среды или интерфейс, который предоставляет браузер — Web API (есть и другие). В отличие от JavaScript-движка, среда выполнения может использовать несколько потоков для обработки ввода-вывода, таймеров и сетевых операций. Если сравнить выполнение скрипта с выступлением оркестра, то дирижёром, который отвечает, чтобы каждая функция «отыграла свою партию» в нужный момент, можно назвать Event Loop. Event Loop — это механизм среды выполнения, который управляет порядком выполнения задач. Он координирует работу JavaScript-кода, обработку событий и другие процессы браузера. Вопреки расхожему мнению, работа этого механизма не так сложна, как его часто описывают. В этой статье, проповедуя Фреймановскую истину — «Если не можешь объяснить что-то простыми словами, то ты не понимаешь этого» — автор попытается (для себя и для других) описать работу Event Loop в браузере. В среде Node.js концепция похожа, но вместо Web API используются другие механизмы ввода-вывода.

https://habr.com/ru/articles/1011258/

#eventloop #webapi #новичкам

Event Loop для начинающих. Не так страшно, как вам рассказывали

JavaScript выполняет код в одном основном потоке. Это означает, что инструкции выполняются последовательно — одна за другой. Получил команду — выполнил. Но что делать интерпретатору, если он встречает...

Хабр

Событийный цикл в asyncio: как Python-код работает поверх механизмов Linux

Большая статья для тех, кто, как и я, споткнулся об asyncio и так не разгадал до конца "магию" событийного цикла. Попробовал распутать этот клубок через подробный рассказ (в как можно более доступной форме) о внутренних механизмах Линукса и самого asyncio, которые лежат в основе событийного. К концу статьи, надеюсь, магия исчезнет, а останется ясное понимание фундамента. Погружаемся

https://habr.com/ru/articles/995032/

#asyncio #python #epoll #selectors #асинхронность #event_loop #eventloop #linux #сокеты

Событийный цикл в asyncio: как Python-код работает поверх механизмов Linux

Статья для тех, кто, как и я, споткнулся об asyncio и так и не понял его до конца. Введение Моё знакомство с asyncio началось довольно типично и болезненно. На тот момент я уверенно владел базовым...

Хабр
🙄 Ah, yes, because what developer doesn't dream of yet another event loop? 🎉 Now with 10% more #jargon and a sprinkle of platform incompatibility solutions! 🎈 Clearly, this will revolutionize the world of tiny, lightning-fast event loops... again. 🚀
https://zelang-dev.github.io/c-events/ #eventloop #development #platformincompatibility #techhumor #HackerNews #ngated
events

A tiny, lightning fast event loop, utilizing single interface for epoll, kqueue, iocp.

c-events

C-events, yet another event loop, simpler, smaller, faster, safer

https://zelang-dev.github.io/c-events/

#HackerNews #Cevents #EventLoop #Simpler #Faster #Safer

events

A tiny, lightning fast event loop, utilizing single interface for epoll, kqueue, iocp.

c-events
🎉 Behold the groundbreaking revelation: wrapping #io_uring and #kqueue in a warm, fuzzy blanket to make them "user-friendly" for programmers who apparently can't handle raw I/O. 🙄 Gather 'round, fellow developers, for the riveting journey from blocking I/O to... an event loop that looks suspiciously like every other one you've seen. 🤦‍♂️
https://tigerbeetle.com/blog/2022-11-23-a-friendly-abstraction-over-iouring-and-kqueue/ #userfriendly #programming #eventloop #HackerNews #ngated
A Programmer-Friendly I/O Abstraction Over io_uring and kqueue

Insights, updates, and technical deep dives on building a high-performance financial transactions database.

Instrumenting the Node.js event loop with eBPF

Recently, I was testing Coroot’s AI Root Cause Analysis on failure scenarios from the OpenTelemetry demo. One of them, loadgeneratorFloodHomepage, simulates a flood of excessive requests. As expected, it caused a latency degradation across the stack. Coroot’s RCA highlighted how the latency cascaded through all dependent services. At the same time, we noticed a moderate...

Coroot

Next #swad release will still be a while. 😞

I *thought* I had the version with multiple #reactor #eventloop threads and quite some #lockfree stuff using #atomics finally crash free. I found that, while #valgrind doesn't help much, #clang's #thread #sanitizer is a very helpful debugging tool.

But I tested without #TLS (to be able to handle "massive load" which seemed necessary to trigger some of the more obscure data races). Also without the credential checkers that use child processes. Now I deployed the current state to my prod environment ... and saw a crash there (only after running a load test).

So, back to debugging. I hope the difference is not #TLS. This just doesn't work (for whatever reason) when enabling the address sanitizer, but I didn't check the thread sanitizer yet...

Среда выполнения JavaScript простым языком: движок, Event Loop и очереди задач

Привет, с вами снова я – Дмитрий, React-разработчик, хотелось бы сегодня затронуть тему среды выполнения JS. Многие знают, другие уже подзабыли, а новички — вовсе не в курсе. В общем, эта статья точно найдёт своих читателей. Постараюсь простыми словами и по делу.

https://habr.com/ru/companies/gnivc/articles/910918/

#js #javascript #react #начинающим #runtime #ast #среда_выполнения_javascript #среда_выполнения #eventloop #callstack

Среда выполнения JavaScript простым языком: движок, Event Loop и очереди задач

Привет, с вами снова я – Дмитрий, React-разработчик, хотелось бы сегодня затронуть тему среды выполнения JS. Многие знают, другие уже подзабыли, а новички — вовсе не в курсе. В общем, эта статья точно...

Хабр