Зависание при подпкиске на цены

Страницы: 1
RSS
Зависание при подпкиске на цены
 
Периодически Квик висит если делать подписку сразу на несколько инструментов. Скрипт пишет ошибку подписки на данные, и затем висит намертво программа. При этом висит только сам Квик. Скрипт продолжает работать и даже торгует.
 
Здравствуйте,
Такое может быть, если в каком-либо колбеке происходит зависание.
Например если в колбеке, используется какой-либо тяжелый цикл.
Или если выход из колбека предусмотрен только когда в другом колбеке что-то произойдет.
Или вовсе это бесконечный цикл.
Нельзя такого допускать, все подобные вещи должны быть в main()
В любом случае, гадать не лучший вариант для решения проблемы.
Если требуется точный диагноз, необходимо предоставить полную версию кода скрипта.
 
Цитата
Sergey Gorokhov написал:
Здравствуйте,
Такое может быть, если в каком-либо колбеке происходит зависание.
Например если в колбеке, используется какой-либо тяжелый цикл.
Или если выход из колбека предусмотрен только когда в другом колбеке что-то произойдет.
Или вовсе это бесконечный цикл.
Нельзя такого допускать, все подобные вещи должны быть в main()
В любом случае, гадать не лучший вариант для решения проблемы.
Если требуется точный диагноз, необходимо предоставить полную версию кода скрипта.
Все проще. Удалены все колбэки. Идет циклом подписка на данные. Если в середине цикла хотя бы одна подписка выдает ошибку, то все зависает.
 
Цитата
Sergey Gorokhov написал:
Если требуется точный диагноз, необходимо предоставить полную версию кода скрипта.
 
Цитата
Sergey Gorokhov написал:
Цитата
Sergey Gorokhov   написал:
Если требуется точный диагноз, необходимо предоставить полную версию кода скрипта.
Скажите, и колбэки со свечами идут в том же потоке, что и обычные цены? Или тут отдельный поток?
 
Мое предположение, что метод CreateDataSource обращается к тем же данным, что и колбэк (раз он умеет сразу получать инфомацию о количество записей). Тут и происходит дедлок, по всей видимости, что приводит к зависанию программы. Итого, имеет два потока. Один пытается подписаться на данный. Другой пытается обработать новые данные. Так как первый поток лезет еще и к самим данным, то это приводит к зависанию.
Страницы: 1
Читают тему (гостей: 1)
Наверх