Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (2)

Лучшие ответы пользователя

Все ответы (2)
  • Почему пишет ошибку Error: Module did not self-register при работе с worker threads (canvas)?

    @lostero
    Единственное решение - форкать и править под многопоточность биндинг.
    Разработчики более 3 лет подобные issue закрывают, как невозможные.

    Это косяк разработчиков нативного модуля.
    Данные модуля должны быть привязаны к контексту, в котором они создаются (NodeJS Context-aware addon)
    И должны очищаться, когда контекст уничтожается, через спец. хук ноды

    Разработчики сего аддона либо не знают этого, либо забивают в пользу поддержки старых версий ноды.

    worker_thread, child_process используют собственные экземпляры Ноды для каждого потока.
    Если нативный модуль не может это использовать, то это проблема разработчика нативного модуля.
    Я вот ни в зуб ногой в синтаксисе C/C++, но смог нативную либу для кодирования изображений в h264 заставить работать как надо и в нодовских потоках (8-50 микросекунд на один 1080p фрейм).

    Моего терпения переписывать за другими биндинг ещё и для этого модуля не хватит, склонирую модуль или буду кидаться данными из отдельного процесса (если совсем убого по роизводительности придётся лезть в C/C++ и кривыми руками говнокодить модуль, чтобы был производительнее, т.к. гуру C/C++ в опенсорс редко лезут без спонсоров).
    Ответ написан
    Комментировать