Столкнулся с проблемой при работе с тиками через CreateDataSource.
Запускаешь квик, таблица обезличенных сделок пока пустая (удалить alltrade.dat для воспроизведения), квик начинает быстро грузить сделки.
В это время работает мой скрипт, который берет данные тиков, например ds:T(i), ds:V(i).
Скрипт падает в ошибку: Critical error ACCESS_VIOLATION in script C:\LuaScripts\TestQuikLua\test_ds5.lua
Ошибка возникает во второй половине дня, когда новых тиков много и квик долго их прокачивает.
Т.е. проблема когда квик активно закачивает сделки и скрипт работает с DataSource.
Воспроизводится в 8.5.2 и 8.6. До версии 8.5 данной проблемы не было.
Код скрипта для воспроизведения:
Запускаешь квик, таблица обезличенных сделок пока пустая (удалить alltrade.dat для воспроизведения), квик начинает быстро грузить сделки.
В это время работает мой скрипт, который берет данные тиков, например ds:T(i), ds:V(i).
Скрипт падает в ошибку: Critical error ACCESS_VIOLATION in script C:\LuaScripts\TestQuikLua\test_ds5.lua
Ошибка возникает во второй половине дня, когда новых тиков много и квик долго их прокачивает.
Т.е. проблема когда квик активно закачивает сделки и скрипт работает с DataSource.
Воспроизводится в 8.5.2 и 8.6. До версии 8.5 данной проблемы не было.
Код скрипта для воспроизведения:
| Код |
|---|
is_run = true
function main()
message("start", 1)
while is_run do
TestDS("RIM0")
sleep(10)
end;
end
function OnStop()
message("stop", 1)
is_run = false
end
function TestDS(tiker)
local ds, errorDescr = CreateDataSource("SPBFUT", tiker, 0)
local size = ds:Size()
for i = 0, size do
local time = ds:T(i)
end
message("DS " .. tiker .. " " .. size, 0)
end
|