
Pavel
09.05.2018
20:06:48
Чего так? Спад завершился и наметился подъём.
https://trends.google.com/trends/explore?date=today%205-y&q=dlang - так веселее

Denis
09.05.2018
20:11:07
нужно сделать бот телеграм который бы ставки принимал на курс, как на акции
тогда и заработок и курс (рейтинг) вырастет из-за ажиотажа

Google

Oleg
10.05.2018
01:41:29

Nikita
10.05.2018
06:35:55
Ребятки, а тут на маке сидит кто? Кто какой ide пользуется?

Stanislav
10.05.2018
06:38:21
Vs code

Igor
10.05.2018
06:38:55
idea

Nikita
10.05.2018
06:39:41
Спасибо, попробую оба

Denis
10.05.2018
07:06:40
Package dash version 0.12.0-beta2 - DUB - The D package registry
https://code.dlang.org/packages/dash

Pavel
10.05.2018
07:22:25
Заброшен

Denis
10.05.2018
07:23:22
и правда

Ievgenii
10.05.2018
09:14:33
https://www.mongodb.com/blog/post/multi-document-transactions-in-mongodb
Транзакции уже летом)))
Если им верить

Denis
10.05.2018
09:25:03
MongoDB Drops ACID - 3 смысла у этой фразы)

Google

Ievgenii
10.05.2018
09:31:26

Denis
10.05.2018
09:32:45
Как я понимаю:
- Слегка упасть вместе с ACID
- ВЫбросить ACID
- Закинуться "кислотой"

Ievgenii
10.05.2018
09:34:26
Заявляют, что будет работать с репликацией
А к 4.2 и с шардированием
Поживем - увидим.

Denis
10.05.2018
09:36:25
а как оно так будет работать там не пишут?

Ievgenii
10.05.2018
09:50:37
Неа
Но не вижу особых проблем

Денис
10.05.2018
10:09:44

Denis
10.05.2018
10:11:09

Ievgenii
10.05.2018
10:14:02
В реплике не вижу особых проблем
С шардированием, конечно, гораздо больше проблем

Denis
10.05.2018
10:14:58

Ievgenii
10.05.2018
10:15:34
Возможно. Но только при реплики
И то не факт)
Будет видно, как выйдет

Denis
10.05.2018
10:16:25
надо код новый глядеть

Nikita
10.05.2018
10:27:42

Pavel
10.05.2018
10:28:26
Ух нафигачил вчера отличный кольцевой буфер )) Часов 7 сидел

Ievgenii
10.05.2018
10:29:18

Google

Pavel
10.05.2018
10:29:34
Чтобы читать из одного сокета и писать в другой
асинхронно

Ievgenii
10.05.2018
10:36:20
Хм...
Тогда не понимаю зачем оно тебе?
Чего просто не считывать в некий буфер, а потом писать в сокет из этого буфера?
Зачем это делать циклично?

Denis
10.05.2018
10:41:53

Pavel
10.05.2018
10:59:53
я в цикле бегаю и ловлю события epoll - "на источник пришли данные", "целевой сокет освободился для записи". Сколько байт удастся прочитать/записать - зависит от сети и от того как звезды сложатся
опубликуй?
Хм не работает ни pastebin ни dpaste(recaptcha сломалась). Проклятый эРКаЭн

Denis
10.05.2018
11:02:56

Pavel
10.05.2018
11:04:11
https://paste.ofcode.org/4g2xZ3Ekk9WQiASZMJGZDz

Denis
10.05.2018
11:10:56
Запили пакет, серьезно

Pavel
10.05.2018
11:12:06
Да я вот думаю, а надо ли на каждый чих пакет пилить? Может сделать как все поступают - запилить проект "мой всякий стафф" и туда коммитить )
Типа как arsd делает

Ievgenii
10.05.2018
11:17:02
Жди освобождение буфера
Смысла считывать нет, так как отправить еще некому, или нет возможности

Pavel
10.05.2018
11:17:40
Жди освобождение буфера
Нельзя ждать, мы же работаем неблокирующе. Надо срочно бежать и обрабатывать события на других сокетах.

Ievgenii
10.05.2018
11:17:48
+ если ты считаешь весь свой буфер (скажем 100 байт), то считывать больше просто нет возможности

Google

Ievgenii
10.05.2018
11:17:58
Т.к. ты свой циклический буфер еще не очистил
Ты же пропускаешь этот сокет тогда

Pavel
10.05.2018
11:20:04
да

Ievgenii
10.05.2018
11:20:17
Правельней было бы его снять с мониторинга, не следить за ним, пока не появится место в буфере
Ну так вот тебе и решение: не смотреть за сокетом, пока буфер не пустой

Pavel
10.05.2018
11:20:50
Ну так все равно надо смотреть за сокетом в который мы пишем

Ievgenii
10.05.2018
11:20:57
Это да!
За тем ты смотришь
но за источником - без смысла

Admin
ERROR: S client not available

Ievgenii
10.05.2018
11:21:23
Ты его каждую итерацию будешь пропускать, пока буфер не освободится

Pavel
10.05.2018
11:21:43
Ну да, впринципе верно, однако это не отменяет нужности кольцевого буфера

Ievgenii
10.05.2018
11:21:48
И тут вопрос: какова вероятность того, что ты не успеешь очистить буфер до прихода следующего чанка?

Pavel
10.05.2018
11:22:54
В общем писать в цикле и ждать - противоречит самой идее неблокирующей обработки.

Ievgenii
10.05.2018
11:27:14
Тебе нужно было "раздекларировать" его обработку

Pavel
10.05.2018
11:27:29
Нет я обрабатывал как раз выходной сокет

Igor
10.05.2018
11:27:29

Google

Ievgenii
10.05.2018
11:27:29
И все
Пришло 60 байт
твой буфер = 100 байтам
Ты считал 60 (больше просто нет)
и записываешь его во второй
но во второй записалось всего 10
И того картина:
у тебя 50 байт в буфере и что-то пришло на вход еще
Ты читаешь, а там 200 байт еще пришло
Ты вычитываешь всего 50
40 в конец и 10 в начало
И ждешь повторной попытки отправить
отправить еще нет возможности
НО тебе уже пришло еще 20 байт к тем, что еще не вычитаны 150
Все равно нужно будет "дергать стоп-кран"

Igor
10.05.2018
11:30:39
это “плохой случай”. в хорошем ты принял 60 байт и поставил их на отправку и сразу втал на приём следующей порции. на следующем возврате из epoll у тебя может быть и первый буфер отправлен и новые 100 байт приняты

Ievgenii
10.05.2018
11:31:08
Иначе будет простой скип того сокета, а это и есть та реализация, что Павла была с начала. Ну практически та

Pavel
10.05.2018
11:32:09

Ievgenii
10.05.2018
11:32:19
Серебряной пули нет. Но ты или будешь делать continue каждый раз, т.к. второй сокет медленее

Pavel
10.05.2018
11:32:23
Блин ты все неправильно понял )

Ievgenii
10.05.2018
11:32:41
Объясни тогда еще раз :)