Size: a a a

2021 June 26

Т

Тающий звук... in dlang.ru
Тут остаётся сделать так, как предлагает Олег, чтобы это первое всё
источник

Т

Тающий звук... in dlang.ru
Вот процесс можно прервать, там есть метод kill, а поток нельзя
источник

И

Игорь in dlang.ru
Ну если это в вайбе то у него должен быть хэндлер на обработку сигнала
источник

EP

Egor Pugin in dlang.ru
да сам вайб должен давать возможность остановить
источник

И

Игорь in dlang.ru
Он может дават возможность завершить event loop снаружи
источник

Т

Тающий звук... in dlang.ru
Вот примерно такой код: https://vibed.org/api/vibe.http.websockets/WebSocket
источник

Т

Тающий звук... in dlang.ru
Висит в этом месте: auto txt = ws.receiveText;
источник

EP

Egor Pugin in dlang.ru
при завершении эвент лупа и должен из ожидания приёма сокет выйти
источник

И

Игорь in dlang.ru
И даже из задачи и треда
источник

И

Игорь in dlang.ru
Ну завтсит от того как запущено
источник

Т

Тающий звук... in dlang.ru
Ну вон в коде выше, который я привёл, там нет евент лупа, там цикл пока есть соединение и функция ожидания приёма сообщения, которая висит некоторое время
источник

Т

Тающий звук... in dlang.ru
Вот в arsd есть евент луп и есть функция его закрытия
источник

Т

Тающий звук... in dlang.ru
источник

EP

Egor Pugin in dlang.ru
ну мб можно как-то по-другому это написать, либо библиотека сама по себе не предоставляет нужных возможностей, можно поискать другие
источник

И

Игорь in dlang.ru
Как видно что именно в жтом месте висит
источник

Т

Тающий звук... in dlang.ru
Я думаю переделать на arsd и если там реализовать в ручном режиме, без евент лупа, то там тоже код более правильно выглядит:
источник

Т

Тающий звук... in dlang.ru
try_to_process_more:
while(ws.isMessageBuffered()) {
 auto msg = ws.waitForNextMessage();
 // process msg
}
if(ws.isDataPending()) {
 ws.lowLevelReceive();
 goto try_to_process_more;
} else {
 // nothing ready, you can do other things
 // or at least sleep a while before trying
 // to process more.
 if(ws.readyState == WebSocket.OPEN) {
   Thread.sleep(1.seconds);
   goto try_to_process_more;
 }
}
источник

Т

Тающий звук... in dlang.ru
Смотрите, тут не висит на функции приёма сообщения, а проверяет  есть ли данные в буфере, если они есть, то просто считывает их
источник

Т

Тающий звук... in dlang.ru
А значит и выход из этого цикла должен произойти более быстро
источник

EP

Egor Pugin in dlang.ru
это из доки пример?
источник