Berkus
Что-то типо state machine
это и есть стейтмашина/генератор/какещевысегодняеёназовёте
Ευγένιος
а не жсник ли ты часом?
Так в ЖСе и то веб-воркеры есть, параллельные.
Berkus
Так в ЖСе и то веб-воркеры есть, параллельные.
они по-моему в жсе перпендикулярные, а не параллельные
Sergey
а работают в разных потоках
Ευγένιος
а работают в разных потоках
Ну это потоки браузера будут, разве не параллельны?
Sergey
нет
Sergey
там именно разные потоки
Sergey
бесконечный for в воркере никак не повлияет на другой воркер или рендер процесс
Ευγένιος
там именно разные потоки
Ну так они исполняются в один момент времени?
Alex
кто то про вебворкеры не читал
Alex
не читал но осуждаю да? ))
Kerrigan
yew умеет вебворкеры уже
Alex
вебворкеры хрома работают в отдельном потоке
Alex
это не конкуренси же
Alex
а разве нет?
Alex
физически нет
Alex
а если ядра два
Alex
то это паралельность
Roma
но потоков же ВОСЕМЬ!
Alex
это демагогия
Alex
раньше в js был гарантировано один тред
Alex
теперь нет
Alex
естественно
Alex
больше одного
Alex
это важно
Alex
то что там всегда был один поток, а теперь больше одного. А не добавили еще 8 ядер к уже имеющимся 4
Alex
подумаешь ерунда какая )
Αλεχ
в модели программирования мы считаем для идеального железа
Αλεχ
где каждый параллельный поток реально выполняется на своем ядре
Αλεχ
не надо тут путать конкуретность физическую с логической
Alexander
По большому счёту (по определению), parallel = SIMD, concurrent = MIMD.
Alex
а что гарантирует?
Αλεχ
ну если мы начинаем говорит фразы типа "а вот движок хрома начиная с версии 58 выполняет их паралелльно" - то немного смахивает на то, что мы слегка углубились в реализацию)
Alexander
Поэтому несколько потоков (выполняющих разный код) - это concurrency, вытесняющая ли, кооперативная ли, на одном ядре или на нескольких.
Αλεχ
а что гарантирует?
создание потока гарантирует
Alex
Alex
а если одно ядро? ))
Cat
это точно чат про руст, а не джерк?
Αλεχ
а если одно ядро? ))
у тебя в модели ЯП нет концепции ядер
Αλεχ
у тебя есть потоки ОС
Αλεχ
и каждый поток считается параллельно исполняемым
Alex
а почему вебркер не считается?
Αλεχ
потому что в спецификации вебворкера не написано, что под него будет выделен поток
Alexander
Parallel необязательно simultaneous execution. Однопоточная обработка - валидная модель параллельной обработки.
Ευγένιος
раньше в js был гарантировано один тред
Ну вообще их в любом случае больше, один под libuv, другой под события.
Αλεχ
спасибо
Αλεχ
бтв
Αλεχ
есть понятное объяснение как mio работает?
պլհկ
на винде хуй его знает
պլհկ
На линуксе это тонкая обертка над еполом
Αλεχ
на винде обертка над IOCP
Αλεχ
я уже глянул
Αλεχ
но например эвентлуп тоже определен в mio
Αλεχ
ну то есть я могу тупо смотреть все исходники подряд
Αλεχ
просто интересно, мб где-то есть детальный разбор
Αλεχ
https://github.com/carllerche/mio/blob/master/src/sys/mod.rs#L40
Αλεχ
лол
Αλεχ
под фушию делают ребята)
պլհկ
Так в фуксии и токио юзают
պլհկ
Насколько я помню
պլհկ
на винде обертка над IOCP
Ну это понятно, но лна толще должна быть, потому что у них модель другая
Αλεχ
Ну это понятно, но лна толще должна быть, потому что у них модель другая
Да вроде достаточно тонкая, 400 строк: https://github.com/carllerche/mio/blob/master/src/sys/windows/udp.rs
Αλεχ
линуховая - 200
պլհկ
Я где-то читал что мио на винде неоптимально работает из-за этой разницы
red75prime
да, mio на винде делает лишние копирования буферов. readyness и completion модели асинхронности сильно несовместимы
Денис
у вас бывало такое, что вам нужно к итератору применить функцию, но сам итератор хранит значения, а функция принимает ссылки, и поэтому .map(f) не работал и приходилось делать .map(|x| f(&x)) ? (я знаю, как это лечится, интересует, часто ли встречается)
red75prime
Ммм, а SIGHUP каким боком к асинхронному i/o? Да и не нужен он на винде. Там другое API
kitsu
У рустича есть порядок выполнения функций, или аналогично с плюсами? E.g: a().b(c()) - выполнится ли ф-я a раньше c?