@dlangru

Страница 369 из 719
Ievgenii
07.01.2018
00:08:47
И мне кажется, что файбы на них и базируются

Evgeny
07.01.2018
00:09:37
А это что?
а да, есть, не знал. только тут наоборот походу, генераторы сделаны на файберах

Google
Evgeny
07.01.2018
00:10:03
раньше вроде не было генераторов

файбер - это зеленый поток

Ievgenii
07.01.2018
00:11:36
Именно на генераторах и строится)))

Evgeny
07.01.2018
00:12:38
файбер - суть coroutine более низкоуровневая вещь чем генератор

и дешный генератор сделан на базе дешного же файбера, посмотри исходники

файбер - суть coroutine более низкоуровневая вещь чем генератор
а точнее они вообще ортогональны друг другу

хоть и похожи

Ievgenii
07.01.2018
00:17:22
Хорошо, зачем тогда вайбовые файберы, если есть нативные?)

Evgeny
07.01.2018
00:18:47
Хорошо, зачем тогда вайбовые файберы, если есть нативные?)
вайбовые файберы - это расширение нативных, для поддержки IO и диспетчера.

Ievgenii
07.01.2018
00:19:05
Так оно и так все есть!

Evgeny
07.01.2018
00:19:44
диспетчер в фобосе чисто демонстрационный, ИО вобще нет

диспетчер == планировщик, так правильнее

Ievgenii
07.01.2018
00:20:45
Так планировщик есть нативный)

Google
Evgeny
07.01.2018
00:21:16
Так планировщик есть нативный)
написано, что это простл пример

Ievgenii
07.01.2018
00:21:22
Сильно большого смысла делать свои файберы - я не вижу

https://dlang.org/library/std/concurrency/fiber_scheduler.html

Evgeny
07.01.2018
00:23:18
Ievgenii
07.01.2018
00:23:34
Это пример его использования

Но он есть нативный

Evgeny
07.01.2018
00:23:50
это пример его реализации

а не использования

самое главное нет ИО

как например открыть сетевое соединение из файбера?

чтобы не блокироватб при этом другие файберы.

в итоге тот же вайб и напишешь. ?

Ievgenii
07.01.2018
00:28:58
в итоге тот же вайб и напишешь. ?
Ну да, напишу свой фреймворк

И зачем это делать в файбе?

Это делается не в нем

Ты просто биндишь сокет

И следишь за ним в лупе

Зачем тебе тут файб?

В файбер реализация обработки запроса должна быть

Google
Ievgenii
07.01.2018
00:31:04
Но не биндинг

Но даже если и биндинг будет, то все равно проблемы не вижу

Вся его задача - создать сокет, забиндить его и задекларировать в лупе... Все!

без файберов? на коллбеках?
https://github.com/vibe-d/vibe.d/blob/master/examples/http_request/source/app.d

Тут в примере именно колбек)))

Я давно его изучал. Я даже не знаю как он сейчас реализует ту же работу с ИО

Нужно ли там самому везде писать yield

Или оно скрыто внедрах

Dmitry
07.01.2018
05:24:56


Evgeny
07.01.2018
06:58:55
Вся его задача - создать сокет, забиндить его и задекларировать в лупе... Все!
создал, зарегал в лупе, и как после этого получить данные в этом же самом файбере? Не забываем, что у нас все выглядит синхронно.

Зачем тебе тут файб?
Например нужно в обработчике запроса сделать HTTP-запрос к стороннему сервису.

Evgeny
07.01.2018
07:01:13
да, известная фигня. для моих центосей патчик для meltdown вышел на днях.

Я давно его изучал. Я даже не знаю как он сейчас реализует ту же работу с ИО
то ты говоришь, что два месяца назад писал, то давно изучал. В вайбе yield сам вызывается на блокирующих операциях. Кстати в вайбе таски могут обмениваться сообщениями аналогично потокам в std.concurrency.

Google
Ievgenii
07.01.2018
08:25:02
И позволяет писать асинхронно

Ваш таскер файба, просто навсего, делает тоже самое

Например нужно в обработчике запроса сделать HTTP-запрос к стороннему сервису.
Вот тебе интереснее задачка: Для обработки входного запроса, тебе нужно сделать 7 http запросов!

Если писать все "синхронно", то входной запрос ты обработаешь после 7 последовательных http запросов. А тут целесообразно бы их сделать паралельно

Тот же Promise тут помог, но есть ли он в вайбе?

Например нужно в обработчике запроса сделать HTTP-запрос к стороннему сервису.
Да и тут пример нам говорит, что мы передаём колбек. В чем смысл писать все типа "синхронно", когда подобные вещи пишутся так? https://github.com/vibe-d/vibe.d/blob/master/examples/http_request/source/app.d

Нужно будет ещё раз покопать их апи

Может там уже все поменялось

А то наезжаю на него, а может уже не оправданно

Admin
ERROR: S client not available

Ievgenii
07.01.2018
09:57:04
Это понятно

Просто ты там писал, как я сделаю, на колбеках? Подразумевая, что это плохо

Evgeny
07.01.2018
09:57:57
Вот тебе интереснее задачка: Для обработки входного запроса, тебе нужно сделать 7 http запросов!
Легко, запускаем дополнительно 7 файберов-тасков, в каждом из котором делаем отдельный http-запрос. А потом основном файбере ждем завершения этих тасков. Пишется очень просто и прозрачно.

Evgeny
07.01.2018
09:59:39
Я тебе показал, что в вайбе и используется колбек
А что я разве где-то говорил, что в вайбе нельзя использовать коллбек? Коллбек нужен для сложных случаев. Главное, что коллбек выполняется в ТОМ ЖЕ САМОМ ФАЙБЕРЕ, СИНХРОННО.

И засыраем файбы)))
Ну каг бэ это свойство файберов, он легкие, их можно запускать тысячами. В эрланге хоть миллионами

Ievgenii
07.01.2018
10:00:14
Так зачем он вообще тогда нужен?

Google
Evgeny
07.01.2018
10:00:44
Так зачем он вообще тогда нужен?
Пойдем с другой стороны. Зачем нужен async/await?

Ievgenii
07.01.2018
10:01:09
Зачем делать колбек, если можно имитировать синхронность

Evgeny
07.01.2018
10:02:40
Зачем делать колбек, если можно имитировать синхронность
Бля, сколько раз повторять, коллбек выполняется синхронно. В вайбе например свои кастомные хидеры можно только так настроить

Между вайбовским коллбеком и, например нодовским - пропасть.

Ievgenii
07.01.2018
10:03:52
Так зачем его делать, для получения контента при http запросе? Чего этот метод просто не возвращает его? Зачем колбек?

Evgeny
07.01.2018
10:03:53
Вайбовский коллбек - это свойство вайба, а не файберов, при желании можно сделать полноценное апи без коллбеков

Так зачем его делать, для получения контента при http запросе? Чего этот метод просто не возвращает его? Зачем колбек?
Видимо ты вообще не знаешь как работает вайб. Как ты на нем что-то умудрялся писать?

Там есть методы возвращающие контент, без коллбеков.

http://vibed.org/api/vibe.http.client/requestHTTP

Ievgenii
07.01.2018
10:05:24
Ну а зачем с колбеком то, если там идёт имитация синхронности?

Evgeny
07.01.2018
10:06:15
Ты троллишь? Коллбек нужен если тебе нужно что-то особенное, отличное от просто запроса

Я уже ответил вроде

Ievgenii
07.01.2018
10:07:41
Ну для формирования запроса - ещё как-то понятно, а вот для получения ответа - не понимаю зачем

Evgeny
07.01.2018
10:08:38
самый первый в списке, по дефолту коллбек равен null

auto response = client.requestHTTP("https://google.com");

Пример?
например если ты не хочешь получать ответ целиком.

или если ты не хочешь получать ответ в виде массива, а обрабатываешь его потоком.

Ievgenii
07.01.2018
10:12:09
Но не понятно, для чего делать колбек, для таких целей

Это все должно решаться в HTTPClientResponse

Страница 369 из 719