home.social

#eventloop — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #eventloop, aggregated by home.social.

fetched live
  1. Как я написал собственный Event Bus на JavaScript

    Эта статья не претендует на создание полноценной замены Node.js EventEmitter или других готовых библиотек. Цель — разобраться, как устроен Event Bus и написать собственную минимальную реализацию. Однажды, размышляя над архитектурой своего приложения, я задался вопросом: как связать модули между собой так, чтобы они оставались полностью автономными? Без импортов и экспорта функциональности. И решил я написать свою систему коммуникации модулей. В первую очередь нужно было определиться с сущностью. Было несколько вариантов: сделать один универсальный объект или, может, класс. Но подумав, решил написать всё одной функцией. const Emitter = () => {} Начало положено. Именно эта функция будет представлять всю систему. Итак, как теперь реализовать коммуникацию? Нужно сделать так, чтобы модули могли подписываться на определённые события. Например, у нас есть приложение todo list. У него есть кнопка "Добавить задачу". Нам нужно сделать так, чтобы при клике на неё:

    habr.com/ru/articles/1065200/

    #javascript #junior #eventdriven #events #event #eventdriven_programming #eventloop

  2. История корутин: появление, развитие, спад и возрождение

    Привет, Хабр! Меня зовут Дмитрий Попов, я Android‑разработчик в ПСБ. В какой‑то момент мне захотелось разобраться — что такое корутина и откуда они вообще взялись. Погрузившись в различные статьи и видео, я узнал много нового, рассказал коллегам внутри команды, а теперь решил рассказать и вам. Все, что важно знать о корутинах, по моему скромному мнению, — в этой статье!

    habr.com/ru/companies/psb/arti

    #корутины #корутины_kotlin #горутины #горутина #eventloop #история_it #история_ит

  3. Hello 🙂,

    How do you handle events?
    Here is a little comparison using an example: programming a button that toggles a text.

    ▶️ Event-driven (JavaScript/DOM, Gtk, Qt...)
    ------------
    label := 'state 1'
    on click:
    label := (if label = 'state2' then 'state1' else 'state2')

    ▶️ Immediate mode (ImGui, G'MIC...)
    --------------
    setup:
    label := 'state1'
    draw:
    if click:
    label := (if label = 'state2' then 'state1' else 'state2')

    ▶️ FuncSug
    --------
    while true:
    label := 'state1'
    await click
    label := 'state2'
    await click

    An example 'Cross the River': cl4cnam.github.io/try_FuncSug?
    FuncSug playground: cl4cnam.github.io/try_FuncSug

    #programmingLanguage #eventLoop #GUI

  4. La programmation événementielle n'est pas une panacée. Cela est connu depuis longtemps. Il y a une vingtaine d'année, l'article d'Andreas Gustafsson (spawn-queue.acm.org/doi/pdf/10) l'expliquait bien. Qu'en est-il aujourd'hui ? Pourquoi la programmation événementielle est-elle encore présentée de nos jours comme une évidence ou, au mieux, comme un mal nécessaire ?

    #programmingLanguage #eventLoop #GUI

  5. Создаем клиентскую библиотеку ROS2. Элементы ноды

    Теперь, когда в вашей клиентской библиотеке появились сообщения , можно перейти к созданию ROS2 ноды и связанных с ней элементов (издателей, сервисов и т.п.). На самом деле процесс добавления этих элементов мало отличается от создания обёртки для таймера, описанный в первой части, поскольку всё сводится к надстройке над функциями библиотеки rcl . Поэтому я не буду рассматривать их подробно, а остановлюсь только на отдельных особенностях.

    habr.com/ru/articles/1036138/

    #ros2 #eventloop

  6. Most event-driven systems scatter state across queues, caches, and threads. “The Event Loop as a Single Source of Truth” argues for one clear authority instead.

    Read More: zalt.me/blog/2026/05/event-loo

    #eventdriven #architecture #eventloop #concurrency

  7. Most event-driven systems scatter state across queues, caches, and threads. “The Event Loop as a Single Source of Truth” argues for one clear authority instead.

    Read More: zalt.me/blog/2026/05/event-loo

    #eventdriven #architecture #eventloop #concurrency

  8. Bonjour 🙂

    Voici un petit comparatif de la programmation d'un bouton qui fait alterner un texte.

    ▶️ Événementiel (JavaScript/DOM, Gtk, Qt...)
    ------------
    label := 'state 1'
    on click:
    label := (if label = 'state2' then 'state1' else 'state2')

    ▶️ Mode immédiat (ImGui, G'MIC...)
    --------------
    setup:
    label := 'state1'
    draw:
    if click:
    label := (if label = 'state2' then 'state1' else 'state2')

    ▶️ FuncSug
    --------
    while true:
    label := 'state1'
    await click
    label := 'state2'
    await click

    #programmingLanguage #eventLoop #GUI

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

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

    habr.com/ru/articles/1011258/

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

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

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

    habr.com/ru/articles/995032/

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

  11. 🙄 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. 🚀
    zelang-dev.github.io/c-events/ #eventloop #development #platformincompatibility #techhumor #HackerNews #ngated

  12. 🙄 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. 🚀
    zelang-dev.github.io/c-events/ #eventloop #development #platformincompatibility #techhumor #HackerNews #ngated

  13. 🎉 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. 🤦‍♂️
    tigerbeetle.com/blog/2022-11-2 #userfriendly #programming #eventloop #HackerNews #ngated

  14. 🎉 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. 🤦‍♂️
    tigerbeetle.com/blog/2022-11-2 #userfriendly #programming #eventloop #HackerNews #ngated

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

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

    habr.com/ru/companies/gnivc/ar

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

  16. Глубокий взгляд на асинхронность в Java Script: роль Event Loop, Event Bus, промисов и async/await

    В этой статье мы сосредоточимся на ключевых элементах асинхронного программирования в Java Script: Event Loop, Event Bus, промисы и синтаксический сахар async/await. Разберемся, как эти концепции взаимодействуют между собой и как их использование помогает нам создавать более эффективные и отзывчивые веб-приложения. Мы начнем с изучения роли Event Loop - механизма, ответственного за управление выполнением асинхронного кода. Затем мы перейдем к рассмотрению Event Bus, который обеспечивает коммуникацию между различными компонентами приложения. После этого мы ознакомимся с промисами и синтаксическим сахаром async/await, которые значительно упрощают работу с асинхронным кодом и делают его более читаемым и понятным.

    habr.com/ru/articles/801543/

    #Promise #async/await #eventloop #eventbus #fetch

  17. Segmentation fault in #PHP when attempting to run code that uses the #Revolt #EventLoop through a #Composer script.

    i.e., { "scripts": { "foo": "php script.php" } }

    Runs just fine with `php script.php`, but segmentation fault when executed from Composer.

    Very odd. I'll try to put together a reproducible example.

  18. Segmentation fault in #PHP when attempting to run code that uses the #Revolt #EventLoop through a #Composer script.

    i.e., { "scripts": { "foo": "php script.php" } }

    Runs just fine with `php script.php`, but segmentation fault when executed from Composer.

    Very odd. I'll try to put together a reproducible example.

  19. This is a rather quick fix for Eventy that I have made with the v0.4.3 release. It should improve performance and technically lower the load average. This is due to the removal of the event-loop which would periodically (configurable or using yield) check if there were any enqueued events and then dispatch them. We now dispatch events on the call to push(Event). Hence no spinning loop is needed which increases the time that thread is present in the run-queue hence increasing the load-average, secondly the dispatching would technically take longer as no signalling occurred - one would just wait for the kernel to schedule the event-loop whenever it decided to (in our case of using yield()).

    http://deavmi.assigned.network/blog/eventy_041_release/

    #eventy #dlang #dub #eventloop #engine