Vladimir
… TryLockError::WouldBlock => { task::current().notify(); Ok(Async::NotReady) } … вот так?
Ну так будет работать, но эт не оптимально
Vladimir
По хорошему этот нотифай должно дергать извне
Vladimir
Какой-то другой поток
kitsu
как-то игрушечно
Tuntz
т.е. у футуры в любом случае должен быть внутренний worker-тред? Оо
Tuntz
тогда чем это лучше синхрона с std::thread?
Vladimir
не в любом случае
Vladimir
смотри
Vladimir
вот у тебя есть код, который блокирующий
Vladimir
пусть будет сокеты
Vladimir
ты хочешь использовать неблокирующее апи. У сокетов для этого есть селекты, который работает сразу с пачкой таких сокетов.
Vladimir
соответственно выходит всего один тред
Vladimir
Т.е. обьект с которым ты работаешь должен быть задизайнен особым образом. Это может быть ивент луп для работы с тонной обьектов, либо в случае мутексов это может быть нотифи при дропе мьютексов
Vladimir
Например билок так и должен поидее делать
Vladimir
ну или тот же futures::mpsc::channel
Tuntz
ну у меня есть желание просто иметь M:N
Tuntz
я так понял, что футуры - это единственное близкое
Маjко
до, выходит даже больше чем стипендия в вузе
Учитывая твою стипу, я всерьез начинаю подумывать перепрофилироваться в переводчика
Маjко
я так понял, что футуры - это единственное близкое
M:1, если ты не пишешь свой планировщик на N реакторах
Tuntz
ну ещё буду вкручивать futures-cpupool
Сережа
вроде есть библиотеки с корутинами, почему вы их ему не советуете?
Vladimir
ну ещё буду вкручивать futures-cpupool
Ну если кпу пул, то смотри как оно работает внутрях, может там нотифи не надо
Сережа
т.е. у футуры в любом случае должен быть внутренний worker-тред? Оо
https://play.rust-lang.org/?gist=8f6468e7299ad507f43a4dd0164670d2&version=stable без внутреннего воркер треда
Сережа
и без смысла существования
Tuntz
ну, я так себе изначально и представлял написание футур
Vladimir
Оно такое и есть, до тех пор пока рекатор твой
Tuntz
poll() блокирует на короткий промежуток времени, делает небольшой отрезок работы и возвращает NotReady
Tuntz
потом появились таски и нотифай и понимание сломалось
Сережа
а там же вроде как-то можно получить таску и запарковать и распарковать было
Сережа
они это убрали?
Vladimir
Поидее не должны были убрать
Vladimir
Запарковать поидее можно только текущую
Vladimir
А распаковать это и есть нотифай
Сережа
т.е. из poll task::current().park
Сережа
а как эту таску получить в воркер треде?
Vladimir
tx.send(task::current());
Vladimir
Или чёт похожее
Vladimir
Может ремот есть у таски
kitsu
http://marcio.io/2015/07/handling-1-million-requests-per-minute-with-golang/ а ваш раст так сможет?
Sergey
http://marcio.io/2015/07/handling-1-million-requests-per-minute-with-golang/ а ваш раст так сможет?
Это всего 16-17 тыс реквестов в секунду.Hyper на Tokio может в несколько раз больше, насколько мне известно
պլհկ
Опять хеловорды меряем?
պլհկ
http://tfb-logs.techempower.com/round-15/preview-3/hyper/plaintext/raw.txt
պլհկ
Running 15s test @ http://TFB-server:8080/plaintext 8 threads and 256 connections Thread Stats Avg Stdev Max +/- Stdev Latency 0.97ms 1.05ms 40.54ms 75.51% Req/Sec 326.20k 45.04k 441.49k 84.58% Latency Distribution 50% 1.12ms 75% 1.98ms 90% 0.00us 99% 0.00us 38972195 requests in 15.04s, 4.72GB read Requests/sec: 2591021.20 Transfer/sec: 321.23MB STARTTIME 1510569848 ENDTIME 1510569863
Loo
смишно
պլհկ
Handling 1 million requests per hour with PHP
Loo
Handling 1 million requests per hour with PHP
handling 1 million requests per day with IBM FileNet
Alexey
1 million visitors per day! High load!
Loo
https://github.com/mtak-/meltdown_rust
Bugworm
безопасно
Alexey
Безопасный эксплоит?
Bugworm
игрушечный
Michael
https://github.com/boyanio/wasm-wheel/issues/1
Michael
кто нибудь натыкался на такое поведение? Может ктото подскажет как разрешить?
Sergey
ребзя как в serde описать объект объектов? { "foo": { id: 1 }, "bar": { id: 2 } }
Anton
Через json value
Anton
Либо вложеные структуры
Anton
А потом их сереализировать
Sergey
ну json value я не понял
Anton
Что именно?
Anton
Динамическое создание?
Anton
А второй вариант чем плох?
Sergey
мне нужно распарсить
Sergey
Либо вложеные структуры
так я же не могу так
Sergey
ключи динамические могут быть
Anton
Ты свой десеризатор пишешь?
Sergey
нет
Anton
Или json используешь?
Sergey
json
Sergey
ребзя как в serde описать объект объектов? { "foo": { id: 1 }, "bar": { id: 2 } }
Sergey
вместо foo, bar могут быть любые ключи
Sergey
любого количества
Anton
Deseralize to json value
Anton
Минут через 5 буду у кома, или можешь сам пример в доке глянуть
Sergey
я просто хз как описать данные даже
Sergey
а если вложенное?
Sergey
то тож вопрос