
Dark
05.06.2018
17:56:16

Pavel
05.06.2018
17:56:47
std то кроссплатформенный должен быть
Да, он кроссплатформенный, поэтому там и по-человечески так сказать. Ну удобно же получить константу ERROR в случае ошибки, а 0 в случае когда все в порядке.

Oleg
05.06.2018
17:58:00

Dark
05.06.2018
17:58:03

Google

Dark
05.06.2018
17:58:31

Pavel
05.06.2018
17:59:47
Returns:
The number of bytes actually received, 0 if the remote side has closed the connection, or Socket.ERROR on failure.
Я так думаю что если ты сделаешь receive на сокет без данных то тебе тоже вернется Socket.ERROR с сообщением "Success", и это будет означать "Все в порядке, только ты не вовремя пришел"

Oleg
05.06.2018
18:02:01
сейчас тогда MVP буду делать

Dark
05.06.2018
18:02:49

qwerty
05.06.2018
18:13:21

Dark
05.06.2018
18:15:16
Нет сборки мусора - нет проблем
:)

Oleg
05.06.2018
18:22:54
как сбросить кэш run.dlang.io?
он мне ошибки выдаёт которых и в помине уже не может быть

Google

Andrey
05.06.2018
18:23:58

Oleg
05.06.2018
18:28:10
как сбросить кэш run.dlang.io?
пиздец он лютый...
я код копирую кусочками, он правильные ошибки выдаёт (нет того-сего)
довожу код до компилируемого состояния, он выдаёт ошибки, которые запомнил где-то
ну, вернее у него, видимо сохранён файл остался на сервере старый

Dark
05.06.2018
18:28:49
С каких пор у run.dlang.io есть кэш?

Oleg
05.06.2018
18:29:44
попробуй закинуть туда, что выдаст?
мне выдаёт это
onlineapp.d(111): Error: undefined identifier throwModbusException
onlineapp.d(117): Error: undefined identifier throwTimeoutException
onlineapp.d(133): Error: undefined identifier throwModbusException
onlineapp.d(142): Error: undefined identifier throwTimeoutException
onlineapp.d(217): Error: undefined identifier throwModbusException
а это ошибки из кода, который я минут 10 назад просто туда скопировал
и раз 5 уже жал на кнопку reset и перезагружал страницу

qwerty
05.06.2018
18:32:22
зайти через инкогнито?

Oleg
05.06.2018
18:32:34

qwerty
05.06.2018
18:33:05
Если сработает, то у меня будет вопрос)

Oleg
05.06.2018
18:34:59
не помогло

qwerty
05.06.2018
18:35:04
=((

Oleg
05.06.2018
18:35:28
насколько нужно изменить файл, чтобы он начал считать его новым?)))

qwerty
05.06.2018
18:37:07
hello world то проходит?

Oleg
05.06.2018
18:37:30
ну да

qwerty
05.06.2018
18:38:05
а можешь поделиться кодом
я попробую запустить

Oleg
05.06.2018
18:38:28
вот сейчас весь код закоментировал, оставил в main только один writeln — считает, что файл старый
удалил один кусок из комментария — думает новый

Google

qwerty
05.06.2018
18:38:56
а ок

Oleg
05.06.2018
18:39:01
вот он

qwerty
05.06.2018
18:39:51

Oleg
05.06.2018
18:40:20
а то думал что уже не могу элементарные действия сделать в правильном порядке (скопировать, на кнопки нажать)
@chebotarevp глянь код плиз
это не совсем прям minimal, но я хз что тут можно урезать, чтобы прям на порядок проще читать было

Pavel
05.06.2018
18:42:50
вместо файбера сделать треды )

qwerty
05.06.2018
18:43:16

Pavel
05.06.2018
18:43:34
Ну к сокетам то не имеет отношения

Oleg
05.06.2018
18:44:59
https://run.dlang.io/gist/b84bcd0cae30188952a0172f24aa525c

Pavel
05.06.2018
18:46:53
Для читабельности, могу и так посмотреть
Хотя кто знает.. может файберы влияют

Oleg
05.06.2018
18:51:49
https://run.dlang.io/gist/cdbf940e755e6b87a706ed34e403c933
ну теперь потоками тоже самое поведение
почти тоже самое
нашёл ошибку, всем спасибо)))))

qwerty
05.06.2018
18:55:51
о_О
которую выдавал компилятор?

Google

Oleg
05.06.2018
18:56:19
нет

qwerty
05.06.2018
18:56:26
аа ок

Oleg
05.06.2018
18:56:45
проблему, ради которой изначально всё это затеял
вот только теперь всё это дело заканчивается 11 кодом

qwerty
05.06.2018
18:57:58
gdb и breakpoint на exit
а я думаю, ты и сам знаешь)

Oleg
05.06.2018
18:58:37
All unit tests have been run successfully.
Program exited with code -11

Admin
ERROR: S client not available

Oleg
05.06.2018
18:58:47
диковатая комбинация строк
дестроиться что-то не так
по всей видимости

Ievgenii
05.06.2018
18:59:24
Ух там у тебя)

Pavel
05.06.2018
19:03:45

Oleg
05.06.2018
19:04:51
после неудачного accept делал continue и не вызывал файберы, в которых продолжалась работа

Dark
05.06.2018
19:04:54

Pavel
05.06.2018
19:07:51
Я не смог нагуглить что значит ошибка -11

qwerty
05.06.2018
19:08:12
segfault

Pavel
05.06.2018
19:08:22
Могу только отдаленно предплолжить что это обращение к непозволительному участку памяти.
Я лечу это долгим закомментированием строк в исходнике и последующей компиляцией/запуском

Google

Dark
05.06.2018
19:09:13

Pavel
05.06.2018
19:09:32
Какая?

qwerty
05.06.2018
19:09:38
gdb?)

Pavel
05.06.2018
19:09:43
Ну может и есть, я не особо умею во всякое такое

Oleg
05.06.2018
19:10:36

qwerty
05.06.2018
19:10:48
может это еще поможет https://wiki.dlang.org/InvalidMemoryOperationError

Oleg
05.06.2018
19:11:19
@chebotarevp можешь просто глянуть адекватно ли я с сокетами работаю?
а то меня гложит чувство что где-то я что-то делаю не так
вообще accept можно без исключения не блокирующе вызвать? а то получается библиотека толкает на логику на исключениях
или accept можно с помощью select выявить?
или как вообще делать то?)))

Dark
05.06.2018
19:14:12
А не, это для другого

Pavel
05.06.2018
19:17:20
Во вторых я не увидел где вызывается функция read()
И странно что ты возвращаешь целый буфер а не количество прочитанных байт

Oleg
05.06.2018
19:18:01

Pavel
05.06.2018
19:19:58
while (result.length < data.length)
result ~= con.read(data, con.CanRead.zero);
Нашел