https://kirilltitov.com/ru/blog/2019/futures
я так и остался боятся, повезло прийти в то время, когда уже появился асинк, даже не разбирался, что это такое)
ждём 5.9 с custom executors
https://kirilltitov.com/ru/blog/2021/async-await А это когда решишь уже бросить евентлуп
А я разобрался, а их время как раз ушло 🥲 Теперь вот уходить от них не хочу!
А что, фьючеры отменят? Зачем ждём?
В 5.8 arm кстати поломали)
надо было взять книгу по свежее, спасибо
ничего не ушло. под капотом в вапоре всё работает на нио (читай: на эвентлупах), и никто никуда от этого не денется
Есть хаммингбирд, там кажется все на асинк сделано
Спасибо за статью, но от шрифта глаза болят
Так, вроде как, асинки на фьючерах сделаны, нет?
Нет конечно, это в случае вапора асинк функции просто обертка над ивент лупами
А... Ну тогда ладно...
а что поломано? а то у меня он стоит на arm-серваке 5 дней как
Любой запрос Fluent приводит к крашу и unknown dwarf version
конкуренси вроде сломали
Имею ввиду на линуксе
я вроде использовал 5.8 даже когда он еще не был в релизе и все ок было
Над GCD же, а не над ивентлупами
Vapor под капотом везде использует ивент лупы, там от gcd ничего нету
Но Swift Concurrency — фича языка, а не вапора, и у нее под капотом GCD. Custom executors еще не подвезли, значит, подкапотную реализацию на свою заменить пока нельзя. Либо ты фактически утверждаешь, что это возможно, либо я запутался в концепциях и уровнях иерархии.
Мы тут обсуждаем как работает вапор. Он работает на ивент лупах. Асинк функции у него - просто обертка для выполнения тех же фьючерсов
Значит, я запутался в концепциях
у вапора асинк функции на gcd, и из gcd оно юзает эвентлупы, и это оверхед от которого с кастомным экзекьютором мы уйдем
Ладно бы только оверхед, это еще полбеды — но такая архитектура в принципе ломает модель single-threaded application, ради которой вообще создавался SwiftNIO. Это примерно похоже на то, что намучавшись с Apache, написать Nginx, а потом в него встроить всю ту же самую апачевую кухню с его "одно соединение — один thread". Написать SwiftNIO, чтобы уйти от модели GCD, а потом фактически вернуть GCD в проекты, построенные на SwiftNIO — это и есть Swift Concurrency на сервер-сайд в настоящий момент. ;)
Судя по свифт-форуму, обещают, что в Swift 6 с кастомными экзекьюторами текущий async/await API изменится. Получается, что реализация Concurrency в Swift 5.5..<6.0 — временное решение, не совместимое ни с прошлым (для сервер-сайда это eventloop'ы), ни с будущим. Непонятно, правда, насколько это изменение API будет существенным.
А можно ссылку на форум? Я чёт ожидаю что апи не поменяется, будет неприятно
Жестче будут требования к коду. Сейчас постоянно ворнинги лезут, мол, ты сделал ахплай-махалай, который сейчас ладно, а в шестерке станет ошибкой. Подрубить режим шестерки можно уже
А для Vapor'а на линуксе можно этот режим включить?
Обсуждают сегодня