<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься? форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sat, 02 May 2026 16:53:50 +0300</pubDate>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28599/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_0r85rzqI" href="/user/3010/" bx-tooltip-user-id="3010">Алексей</a>, Добрый день, <br /> &nbsp; &nbsp; &nbsp; <br /> &nbsp; &nbsp; &nbsp; <br /> &nbsp; &nbsp; &nbsp; Ошибка будет исправлена в одной из следующих версий программы <br />
			<i>11.01.2018 07:04:32, Zoya Skvorcova.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28599/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28599/topic3240/</guid>
			<pubDate>Thu, 11 Jan 2018 07:04:32 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28508/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_G9m714zm" href="/user/3010/" bx-tooltip-user-id="3010">Алексей</a>, <br />Проблема изучается. Постараемся в ближайшее время дать ответ. <br />
			<i>28.12.2017 12:00:40, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28508/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28508/topic3240/</guid>
			<pubDate>Thu, 28 Dec 2017 12:00:40 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28506/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_q84cHO0k" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br /> Алексей &nbsp;, <br />На приведенном Вами коде, проблема не воспроизводится.<br />=============<br />Естественно! Вероятность воспроизведения проблемы менее 0.1%. Я же указал, что ошибка за почти год эксплуатации скрипта возникла всего дважды.<br />Чтобы она возникла необходимо, чтобы OnTransReply пришел после OnInit, но до исполнения в main() TEname = &quot;abc&quot; (скрипт вырубается), или вообще до старта потока main (скрипт не вырубается).<br /><br />Но сегодня я получил новое интересное событие: пришел OnCleanUp два раза подряд (подряд в том смысле, что между ними ни одного другого колбека). Мой скрипт действительно некорректно обрабатывает такой сценарий (исправлю) и в результате одна из функций, вызываемых из обработчика OnFuturesLimitChange входит в бесконечный рекурсивный вызов самой себя. В результате имеем:<br /><br /> [FILE ID=4108] <br /><br />Ошибка горит, а скрипт спокойно занят своими делами и успешно торгует. <br />
			<img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=4108&" width="1680" height="1050" /><br /><i>28.12.2017 11:30:15, Алексей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28506/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28506/topic3240/</guid>
			<pubDate>Thu, 28 Dec 2017 11:30:15 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28505/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_o1g5u2xL" href="/user/9815/" bx-tooltip-user-id="9815">kroki</a>, <br />Новая версия терминала, может быть не совместима со старой версией сервера.<br />Обновление Вам следует запросить у Вашего брокера. <br />
			<i>28.12.2017 11:28:26, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28505/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28505/topic3240/</guid>
			<pubDate>Thu, 28 Dec 2017 11:28:26 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28504/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_770Yqhxb" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />Версия очень старая, рекомендуется обновить до последней 7.14<br />=============<br /><a class="blog-p-user-name" id="bp_Uvyw1QoR" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a>, я бы с радостью обновился, но как? &nbsp;Из <noindex><a href="https://forum.quik.ru/messages/forum1/message20824/topic2304/#message20824" target="_blank" rel="nofollow">этой ветки</a></noindex> я сделал вывод, что нет гарантий, что новая версия терминала будет работать со старой версией сервера у брокера. &nbsp;Также на <noindex><a href="https://arqatech.com/ru/support/files/" target="_blank" rel="nofollow">вашем сайте</a></noindex> сказано, что:<br />====quote====<br />Дистрибутив может использоваться для подключения к серверам Технического центра ARQA Technologies. <B>Для подключения к серверам брокеров необходимо использовать дистрибутив, предоставленный брокером.</B><br />=============<br />Или это все устаревшая информация, и можно смело обновяться? &nbsp;И есть ли где-нибудь пошаговая инструкция? &nbsp;Ибо на само деле пробовал обновить, но не получилось... <br />
			<i>28.12.2017 11:25:05, kroki.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28504/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28504/topic3240/</guid>
			<pubDate>Thu, 28 Dec 2017 11:25:05 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28500/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			колбеки вызываются из терминала <br />Это вызов функций, которые расположены в скриптах<br />Следовательно колбек приходит из терминала &nbsp;в VMLua. <br />
			<i>28.12.2017 05:53:40, Николай  Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28500/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28500/topic3240/</guid>
			<pubDate>Thu, 28 Dec 2017 05:53:40 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28498/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_NeFwTo5h" href="/user/62/" bx-tooltip-user-id="62">Николай  Камынин</a> написал:<br />Тогда поясните откуда колбеки поступают в терминал?<br /><br />=============<br />Они не поступают в терминал, это терминал вызывает их. <br />
			<i>28.12.2017 05:49:19, Michael Bulychev.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28498/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28498/topic3240/</guid>
			<pubDate>Thu, 28 Dec 2017 05:49:19 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28497/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_cbulNoPh" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br /><br />====quote====<br /> Николай &nbsp;Камынин &nbsp; написал:<br />Тогда поясните откуда колбеки поступают в терминал?<br /><br />=============<br />Информация поступает с сервера, куда подключился терминал, это же очевидно.<br />=============<br />Конечно, информация поступает с сервера, но не колбеки.<br />Разницу улавливаете? <br />
			<i>28.12.2017 05:47:01, Николай  Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28497/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28497/topic3240/</guid>
			<pubDate>Thu, 28 Dec 2017 05:47:01 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28495/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_jCsQ5m0J" href="/user/3010/" bx-tooltip-user-id="3010">Алексей</a>, <br />На приведенном Вами коде, проблема не воспроизводится. <br />
			<i>28.12.2017 05:34:38, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28495/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28495/topic3240/</guid>
			<pubDate>Thu, 28 Dec 2017 05:34:38 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28494/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_tCfvAJue" href="/user/9815/" bx-tooltip-user-id="9815">kroki</a> написал:<br />и перелогиниться. &nbsp;Для моей версии 7.5.0.72 - нет, не останавливает.<br /><br />=============<br /><br />Версия очень старая, рекомендуется обновить до последней 7.14 <br />
			<i>28.12.2017 05:29:10, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28494/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28494/topic3240/</guid>
			<pubDate>Thu, 28 Dec 2017 05:29:10 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28493/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_icjFWNZj" href="/user/62/" bx-tooltip-user-id="62">Николай  Камынин</a> написал:<br />Тогда поясните откуда колбеки поступают в терминал?<br /><br />=============<br /><br />Информация поступает с сервера, куда подключился терминал, это же очевидно. <br />
			<i>28.12.2017 05:27:53, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28493/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28493/topic3240/</guid>
			<pubDate>Thu, 28 Dec 2017 05:27:53 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28492/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_uZQYTYqq" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br /> Алексей &nbsp;, <br />Вы сказали что ошибка проявилась после того как была исправлена проблема с TEname. А в приведенном коде она не исправлена.<br />=============<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_goi2YRkB" href="/user/3010/" bx-tooltip-user-id="3010">Алексей</a> написал (в <noindex><a href="https://forum.quik.ru/messages/forum10/message28487/topic3240/#message28487" target="_blank" rel="nofollow">#21</a></noindex>):<br />За все время работы моего скрипта (<U>до исправления</U>) ошибка было поймана лишь дважды, один раз скрипт вырубило, а второй случай - мы обсуждаем.<br />=============<br />Я, видимо, ранее по ходу переписки недостаточно сакцентировал внимание на описании ситуации с возникновением второго варианта ошибки (когда ошибка высветилась, но скрипт продолжал работать). Эта, как и первая ошибка (просто вырубающая скрипт) была &quot;поймана&quot; на еще <U>не исправленном</U> скрипте. Т.е. обе ошибки были пойманы на скрипте, схема которого показана в <noindex><a href="https://forum.quik.ru/messages/forum10/message28487/topic3240/#message28487" target="_blank" rel="nofollow">#21</a></noindex> посте. <br />
			<i>28.12.2017 03:11:45, Алексей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28492/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28492/topic3240/</guid>
			<pubDate>Thu, 28 Dec 2017 03:11:45 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28491/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_pHSRgjlF" href="/user/3010/" bx-tooltip-user-id="3010">Алексей</a>, для выяснения, останавливает ли ошибка в callback скрипт, можно запустить
====code====
<pre>function OnConnected()
&nbsp;&nbsp; error("OnConnected")
end

function OnDisconnected()
&nbsp;&nbsp; error("OnDisconnected")
end

local stop = false
function OnStop()
&nbsp;&nbsp; stop = true
end

function main()
&nbsp;&nbsp; while not stop do sleep(100) end
end
</pre>
=============
и перелогиниться. &nbsp;Для моей версии 7.5.0.72 - нет, не останавливает. <br />
			<i>28.12.2017 00:04:25, kroki.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28491/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28491/topic3240/</guid>
			<pubDate>Thu, 28 Dec 2017 00:04:25 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28489/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_OpkTIzEN" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br /><br />====quote====<br /> Николай &nbsp;Камынин &nbsp; написал:<br />Как я понимаю, так как колбеки работают в одном потоке, то будет очередность.<br /><br />=============<br />Николай, читайте внимательней.<br />Речь про колбеки в сравнении с main.<br />Между колбеками и main очередности нет.<br /><br />====quote====<br /> Николай &nbsp;Камынин &nbsp; написал:<br />Что есть истина?<br /><br />=============<br />колбеки выполняются в том порядке как они поступили в терминал QUIK.<br />Если один колбек затормозит, то накопится очередь, которая потом исполнится в том порядке в каком они поступили.<br />=============<br />Тогда поясните откуда колбеки поступают в терминал?<br />Спасибо. <br />
			<i>27.12.2017 18:00:04, Николай  Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28489/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28489/topic3240/</guid>
			<pubDate>Wed, 27 Dec 2017 18:00:04 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28488/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_plAzTTCD" href="/user/3010/" bx-tooltip-user-id="3010">Алексей</a>, <br />Вы сказали что ошибка проявилась после того как была исправлена проблема с TEname. А в приведенном коде она не исправлена. <br />
			<i>27.12.2017 16:06:48, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28488/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28488/topic3240/</guid>
			<pubDate>Wed, 27 Dec 2017 16:06:48 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28487/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_eORE8Zhn" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />Однако ранее у нас были обращения от клиентов с тем что сообщение оставалось и это чинилось.<br /><br />=============<br />Quik 7.14.1.7 - уже исправлено?<br /><br />Скрипт, который, по идее, может воспроизвести такую ошибку может выглядеть как-то так:
====code====
<pre>function OnInit()
&nbsp;&nbsp;main_run = true
end

function main()
&nbsp;&nbsp;TEname = "abc"
&nbsp;&nbsp;while main_run do
&nbsp;&nbsp;&nbsp;&nbsp;sleep(100)
&nbsp;&nbsp;end
end

function OnTransReply(tab)
&nbsp;&nbsp;if tab.brokerref and tab.brokerref:find(TEname) then
&nbsp;&nbsp;&nbsp;&nbsp;message("Пришел мой OnTransReply")
&nbsp;&nbsp;end
end

function OnStop()
&nbsp;&nbsp;main_run = false
end
</pre>
=============
Скрипт должен быть запущен уже после соединения с сервером. С брокером должен идти обмен служебными транзакциями (в моей ситуации), или должен параллельно работать другой скрипт, отсылающий транзакции.<br />И нужно &quot;подгадать&quot; запуск скрипта так, чтобы пришел OnTransReply до старта main.<br />За все время работы моего скрипта (до исправления) ошибка было поймана лишь дважды, один раз скрипт вырубило, а второй случай - мы обсуждаем. <br />
			<i>27.12.2017 14:38:27, Алексей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28487/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28487/topic3240/</guid>
			<pubDate>Wed, 27 Dec 2017 14:38:27 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28486/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_5usmUmcu" href="/user/3010/" bx-tooltip-user-id="3010">Алексей</a> написал:<br />По-моему - никак. Значит ошибка возникла после последнего старта скрипта, но не прервала его работу.<br /><br />=============<br /><br />По идее да, никак. Однако ранее у нас были обращения от клиентов с тем что сообщение оставалось и это чинилось.<br />И как уже было сказано и еще раз повторим:<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_AeFAJPyI" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />Если требуется анализ, приведите полный код скрипта на котором возникает проблема и сообщите версию терминала QUIK<br /><br />=============<br /> <br />
			<i>27.12.2017 13:59:58, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28486/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28486/topic3240/</guid>
			<pubDate>Wed, 27 Dec 2017 13:59:58 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28485/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_SgCKY9RR" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br /><br />====quote====<br />Алексей написал:<br />Вообще-то, по моему, после перезапуска скрипта содержание ошибки от прошлого сеанса его работы должно стираться из окна &quot;Доступные скрипты&quot; раздел &quot;Ошибки выполнения скрипта&quot;. Разве не так?<br />=============<br />А Вы проверили, действительно ли сообщение от предыдущего запуска?<br />Или это сообщение появилось после?<br /><br />=============<br />Кажется, я все никак не могу донести до Вас мысль, что сообщение горело в окне &quot;Доступные скрипты&quot; ВО ВРЕМЯ работы скрипта (зеленый треугольничек горит у наименования скрипта, скрипт явно функционирует, а внизу, в &quot;Ошибки выполнения скрипта&quot; - сообщение об ошибке.) Как во время работы скрипта в &quot;Ошибки выполнения скрипта&quot; может оставаться запись от предыдущего запуска скрипта?<br />По-моему - никак. Значит ошибка возникла после последнего старта скрипта, но не прервала его работу. <br />
			<i>27.12.2017 13:55:07, Алексей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28485/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28485/topic3240/</guid>
			<pubDate>Wed, 27 Dec 2017 13:55:07 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28479/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_ohkQg2F2" href="/user/62/" bx-tooltip-user-id="62">Николай  Камынин</a> написал:<br />Как я понимаю, так как колбеки работают в одном потоке, то будет очередность.<br /><br />=============<br /><br />Николай, читайте внимательней.<br />Речь про колбеки в сравнении с main.<br />Между колбеками и main очередности нет.<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_CFEkh9U4" href="/user/62/" bx-tooltip-user-id="62">Николай  Камынин</a> написал:<br />Что есть истина?<br /><br />=============<br /><br />колбеки выполняются в том порядке как они поступили в терминал QUIK.<br />Если один колбек затормозит, то накопится очередь, которая потом исполнится в том порядке в каком они поступили. <br />
			<i>27.12.2017 08:49:02, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28479/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28479/topic3240/</guid>
			<pubDate>Wed, 27 Dec 2017 08:49:02 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28477/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<noindex><a href="https://forum.quik.ru/user/17/" target="_blank" rel="nofollow">Sergey Gorokhov</a></noindex><br />Добрый день,<br />Уточните относительно утверждения об очередности, что ее нет.<br />-----------------<br />Как я понимаю, так как колбеки работают в одном потоке, то будет очередность.<br />Полагаю, что их очередность либо определяется порядком появления их в скрипте,<br /> либо заранее установленным порядком их обхода внутри терминала.<br />Что есть истина?<br />спасибо <br />
			<i>27.12.2017 08:30:26, Николай  Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28477/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28477/topic3240/</guid>
			<pubDate>Wed, 27 Dec 2017 08:30:26 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28473/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_slOtHlD1" href="/user/3010/" bx-tooltip-user-id="3010">Алексей</a> написал:<br />Вы, по ошибке, заглянули в "Интерпретатор языка Lua.pdf", а я ссылался на стр. 6 "Использование Lua в Рабочем месте QUIK.pdf".<br />=============<br />Да верно. <br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_hdks358b" href="/user/3010/" bx-tooltip-user-id="3010">Алексей</a> написал:<br />Приведенная там схема и натолкнула меня на мысль, что в Quik реализован первый способ работы lua скрипта.<br /><br />=============<br />Приведенная там схема явно говорит о том что после OnInit() параллельно работают Main и колбеки. Параллельно означает что никакой очередности между ними нет.<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_WP2w62ds" href="/user/3010/" bx-tooltip-user-id="3010">Алексей</a> написал:<br />Вообще-то, по моему, после перезапуска скрипта содержание ошибки от прошлого сеанса его работы должно стираться из окна "Доступные скрипты" раздел "Ошибки выполнения скрипта". Разве не так?<br /><br />=============<br />А Вы проверили, действительно ли сообщение от предыдущего запуска?<br />Или это сообщение появилось после?<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_GzxUJrRs" href="/user/3010/" bx-tooltip-user-id="3010">Алексей</a> написал:<br />2. Ошибки интерпретатора, возникающие между окончанием OnInit, но до организации выделенного для main потока, не вырубают скрипт.<br />=============<br /><br />Кажется на это уже был дан вполне понятный ответ.<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_CurHVn12" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />ЦитатаАлексей написал:<br />2. Ошибки интерпретатора, возникающие между окончанием OnInit, но до старта main, не вырубают скрипт.<br />Так не должно быть.<br /><br />=============<br /> <br />
			<i>27.12.2017 04:49:54, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28473/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28473/topic3240/</guid>
			<pubDate>Wed, 27 Dec 2017 04:49:54 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28470/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			По поводу самой ошибки. <br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_M7bBQI6F" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />вообще, использовать заранее не инициализированные переменные является плохим тоном.<br />даже в документации об этом сказано (см описание OnInit)<br /><br />=============<br />Полностью с Вами согласен, исправлюсь. И по моему, мы с Вами уже давно пришли в выводу, что ошибка возникала из-за того, что обработчик OnTransReply в редких случаях вызывался раньше, чем была инициализирована TEname. Теперь это делается в OnInit и об ошибке можно забыть. Спасибо.<br /><br />Продолжил же я переписку, чтобы обратить внимание на то, что в документации к QLua я не нашел деталей реализации работы lua скрипта под Quikом, точнее вообще её неправильно понял. А именно:<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_EuyCLHX6" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />Какими правилами, Вы вообще о чем? Колбеки выполняются по событию.<br />Событие произошло до main вот и колбек сработал до main.<br />В чем вопрос, не понятно.<br /><br />=============<br />И я о том, что правил нет. Реализовать работу lua скрипта под Quikом можно было не менее, чем тремя способами: <br /><br />Первый способ: сначала интерпретатор в основном потоке Quik проходит &lt;Body&gt;, получая адреса OnInit, main и обработчиков событий, затем вызывает OnInit(), затем, организует выделенный поток, запускает в нем main() и только потом настраивает вызовы описанных в скрипте обработчиков событий; (я изначально решил исходя из стр.6, что реализация такова; о стр. 6 - ниже)<br /><br />Второй способ: сначала интерпретатор в основном потоке Quik проходит &lt;Body&gt;, получая адреса OnInit, main, и обработчиков событий, затем вызывает OnInit(), затем настраивает вызовы описанных в скрипте обработчиков событий, и только потом организует выделенный поток и запускает в нем main(); (теперь, по результатам переписки с Вами, полагаю, что в Quik реализована именно такая схема)<br /><br />Третий способ: сначала интерпретатор в основном потоке Quik проходит &lt;Body&gt;, получая адреса main, и обработчиков событий (в т.ч. OnInit), затем настраивает вызовы описанных в скрипте обработчиков событий (в т.ч. OnInit), генерирует событие для вызова обработчика OnInit, и только потом организует выделенный поток и запускает в нем main(). То же возможный вариант для реализации, хотя в нем, очевидно, может случится так, что обработка прочих событий может начаться до OnInit().<br /><br />И в документации к QLua я не увидел на этот счет четкой конкретики. Собственно поэтому и продолжил переписку.<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_sBjxcIdQ" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_3GAHbrZI" href="/user/3010/" bx-tooltip-user-id="3010">Алексей</a> написал:<br />И глядя на стр. 6 &quot;Использование Lua в Рабочем месте QUIK.pdf&quot;<br />=============<br />На стр 6, данного документа рассказано как запустить скрипт Lua.<br />...<br />Что не так?<br /><br />=============<br />Вы, по ошибке, заглянули в &quot;Интерпретатор языка Lua.pdf&quot;, а я ссылался на стр. 6 &quot;Использование Lua в Рабочем месте QUIK.pdf&quot;. Приведенная там схема и натолкнула меня на мысль, что в Quik реализован первый способ работы lua скрипта.<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_Y8cB6YKH" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />А может все проще и сообщение осталось от предыдущего запуска, до исправления ошибки?<br /><br />=============<br />Вообще-то, по моему, после перезапуска скрипта содержание ошибки от прошлого сеанса его работы должно стираться из окна &quot;Доступные скрипты&quot; раздел &quot;Ошибки выполнения скрипта&quot;. Разве не так?<br /><br />И столкнувшись с этим в работе моего скрипта (в версии с еще не исправленной ошибкой), я сделал предположение №2:<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_2BbzaHha" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />где из всего поста предположение №2? а то Вы их не нумеруете.<br />=============<br />Предположение №2 из #10-го поста:<br />2. Ошибки интерпретатора, возникающие между окончанием OnInit, но до старта main, не вырубают скрипт.<br /><br />Теперь уже, после столь детального обсуждения следует, наверное, уточнить: <br />2. Ошибки интерпретатора, возникающие между окончанием OnInit, но до организации выделенного для main потока, не вырубают скрипт. <br />
			<i>26.12.2017 22:25:11, Алексей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28470/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28470/topic3240/</guid>
			<pubDate>Tue, 26 Dec 2017 22:25:11 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28391/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_oD2JB5DT" href="/user/3010/" bx-tooltip-user-id="3010">Алексей</a> написал:<br />Только вопрос о том, могут или нет колбеки начать выполняться до main, возник потому, что это определяется не какими-то вселенскими правилами реализации многопоточности, а конкретным решением разработчика конкретного программного продукта.<br />=============<br /><br />Какими правилами, Вы вообще о чем? Колбеки выполняются по событию.<br />Событие произошло до main вот и колбек сработал до main.<br />В чем вопрос, не понятно.<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_TnElreut" href="/user/3010/" bx-tooltip-user-id="3010">Алексей</a> написал:<br />И глядя на стр. 6 "Использование Lua в Рабочем месте QUIK.pdf"<br />=============<br />На стр 6, данного документа рассказано как запустить скрипт Lua.<br />[FILE ID=4070]<br />Что не так?<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_J27EKAlt" href="/user/3010/" bx-tooltip-user-id="3010">Алексей</a> написал:<br />Весь код - более 8 тысяч строк, заставлять Вас его изучать в поисках ошибок мне совесть не позволяет :)<br /><br />=============<br />И что мешает создать более компактную версию, чисто для воспроизведения описанной проблемы?<br />И потом, большой код никого из поддержки не пугает. Если Вы считаете его не публичным, всегда можно отправить на quiksupport@arqatech.com<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_MXJjB5RU" href="/user/3010/" bx-tooltip-user-id="3010">Алексей</a> написал:<br />Код же, исполнение которого вызывает ошибку, приведен в посте #3.<br /><br />=============<br />Это не код, а пара строк. <br />Что такое код, это проект со своей рабочей логикой. Проследив которую можно понять при каких обстоятельствах в указанных строках возможна ошибка.<br />Указав конкретную строку, где возникла логическая ошибка, Вы сами же не сможете разобраться, верно?<br />x= y\z<br /><br />А вот если указать полный код<br />z=0<br />y=1<br />x= y\z<br /><br />тогда шансы разобраться заметно возрастают.<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_mbaSyO21" href="/user/3010/" bx-tooltip-user-id="3010">Алексей</a> написал:<br />Переменной TEname присваивается строковое значение в самом начале main. <br /><br />=============<br />Вот еще одна причина ко которой нужен полный код, а не пара строк. <br />Как по Вашему до этой информации нам можно было бы разобраться?<br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_Yn9yXQno" href="/user/3010/" bx-tooltip-user-id="3010">Алексей</a> написал:<br />(Теперь то я перенес это в OnInit, но на исходное решение были свои соображения).<br />=============<br /><br />вообще, использовать заранее не инициализированные переменные является плохим тоном.<br />даже в документации об этом сказано (см описание OnInit)<br /><br />====quote====<br /> В данной функции пользователь имеет возможность инициализировать все необходимые переменные и библиотеки перед запуском основного потока main(). <br />=============<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_bAfYbII0" href="/user/3010/" bx-tooltip-user-id="3010">Алексей</a> написал:<br />Однако я столкнулся с необъяснимой ситуацией: в "Ошибки выполнения скрипта" светилось: "bad argument #1 to 'find' (string expected, got nil)", а скрипт прекрасно продолжал свою кипучую деятельность.<br /><br />=============<br />А может все проще и сообщение осталось от предыдущего запуска, до исправления ошибки?<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_aoCF7G5t" href="/user/3010/" bx-tooltip-user-id="3010">Алексей</a> написал:<br />Из этого я и сделал предположение №2.<br />=============<br />где из всего поста предположение №2? а то Вы их не нумеруете. <br />
			<img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=4070&" width="716" height="995" /><br /><i>25.12.2017 05:47:48, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28391/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28391/topic3240/</guid>
			<pubDate>Mon, 25 Dec 2017 05:47:48 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28387/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_9bTShWNp" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br /><br />====quote====<br /> Алексей &nbsp; написал:<br />1. Колбеки начинают вызываться после окончания OnInit, но могут выполняться до старта потока main.<br /><br />=============<br />Колбеки могут начать выполняться до старта main и в этом нет ничего удивительного.<br />main выполняется после OnInit, остальные колбеки никакого значения не имеют.<br />=============<br /><br />В этом действительно нет ничего удивительного. <br />Только вопрос о том, могут или нет колбеки начать выполняться до main, возник потому, что это определяется не какими-то вселенскими правилами реализации многопоточности, а конкретным решением разработчика конкретного программного продукта. Вариант, при котором до страта main не могут вызываться колбеки, тоже имеет право на существование и свою логику для реализации. И глядя на стр. 6 &quot;Использование Lua в Рабочем месте QUIK.pdf&quot; я, по простоте душевной, решил что разработчики Quik руководствовались логикой из второго варианта. И обнаружив обратное, был несколько озадачен.<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_r0Wt0juI" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br />====quote====<br /> Алексей &nbsp; написал:<br />2. Ошибки интерпретатора, возникающие между окончанием OnInit, но до старта main, не вырубают скрипт.<br /><br />=============<br />Так не должно быть.<br />Если требуется анализ, приведите полный код скрипта на котором возникает проблема и сообщите версию терминала QUIK<br />=============<br /><br />Однако и к моему удивлению так случилось!<br />Весь код - более 8 тысяч строк, заставлять Вас его изучать в поисках ошибок мне совесть не позволяет :)<br />Код же, исполнение которого вызывает ошибку, приведен в посте #3.<br /><br />Ошибка, напомню, возникает в обработчике OnTransReply, когда происходит обращение к еще не инициализированной TEname, как к строке.<br />Переменной TEname присваивается строковое значение в самом начале main. (Теперь то я перенес это в OnInit, но на исходное решение были свои соображения).<br />Однако я столкнулся с необъяснимой ситуацией: в &quot;Ошибки выполнения скрипта&quot; светилось: &quot;bad argument #1 to 'find' (string expected, got nil)&quot;, а скрипт прекрасно продолжал свою кипучую деятельность.<br />Я себе не представляю ситуации, чтобы скрипт при такой ошибке в потоке терминала не был принудительно завершен Quikом, если поток main уже запущен.<br />Из этого я и сделал предположение №2. <br />
			<i>24.12.2017 20:48:17, Алексей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28387/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28387/topic3240/</guid>
			<pubDate>Sun, 24 Dec 2017 20:48:17 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28386/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_gnTJ3JXZ" href="/user/17/" bx-tooltip-user-id="17">Sergey Gorokhov</a> написал:<br /><br />====quote====<br /> Алексей &nbsp; написал:<br />1. Колбеки начинают вызываться после окончания OnInit, но могут выполняться до старта потока main.<br /><br />=============<br />Колбеки могут начать выполняться до старта main и в этом нет ничего удивительного.<br />main выполняется после OnInit, остальные колбеки никакого значения не имеют.<br />=============<br /> <br />
			<i>24.12.2017 20:10:32, Алексей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28386/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28386/topic3240/</guid>
			<pubDate>Sun, 24 Dec 2017 20:10:32 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28275/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_lETSqgRB" href="/user/3010/" bx-tooltip-user-id="3010">Алексей</a> написал:<br />1. Колбеки начинают вызываться после окончания OnInit, но могут выполняться до старта потока main.<br /><br />=============<br />Колбеки могут начать выполняться до старта main и в этом нет ничего удивительного.<br />main выполняется после OnInit, остальные колбеки никакого значения не имеют.<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_jFg1yuqb" href="/user/3010/" bx-tooltip-user-id="3010">Алексей</a> написал:<br />2. Ошибки интерпретатора, возникающие между окончанием OnInit, но до старта main, не вырубают скрипт.<br /><br />=============<br />Так не должно быть.<br />Если требуется анализ, приведите полный код скрипта на котором возникает проблема и сообщите версию терминала QUIK <br />
			<i>18.12.2017 10:14:18, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28275/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28275/topic3240/</guid>
			<pubDate>Mon, 18 Dec 2017 10:14:18 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28242/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Опять столкнулся с этой ошибкой. Но при этом скрипт благополучно продолжил свою работу!<br />Судя по логам, вызов колбека (в потоке которого случилась ошибка) произошел после OnInit, но РАНЬШЕ старта потока main.<br />Исходя из этого прошу подтвердить два вывода:<br /><br />1. Колбеки начинают вызываться после окончания OnInit, но могут выполняться до старта потока main.<br />2. Ошибки интерпретатора, возникающие между окончанием OnInit, но до старта main, не вырубают скрипт. <br />
			<i>15.12.2017 13:16:32, Алексей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28242/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28242/topic3240/</guid>
			<pubDate>Fri, 15 Dec 2017 13:16:32 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28026/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Вы говорите про разные потоки, которые между собой не синхронизируются.<br />Если в одном потоке случилась ошибка, то второй поток как минимум закончит обработку прежде чем случится выход, либо будет завершен принудительно через 5 сек. <br />
			<i>04.12.2017 11:11:22, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28026/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28026/topic3240/</guid>
			<pubDate>Mon, 04 Dec 2017 11:11:22 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28016/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Видимо вопрос остался незамеченным.<br /><br />Из вышеприведенных наблюдений есть основание полагать, что после возникновения в потоке Quik (в колбеке) ошибки исполнения интерпретатора (допустим, деление на 0 или индексирование nil), управление все же может вернуться в поток main, и там еще некоторое время скрипт будет выполняться.<br /><br /><B>ВОПРОСЫ:<br /></B>1. Это действительно так?<br />2. Если так, то есть ли какие-то критерии, по которым можно оценить до каких пор будет работать поток main? (например, 5 секунд или до первого вызова sleep и т.п.) <br />
			<i>03.12.2017 19:30:40, Алексей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28016/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28016/topic3240/</guid>
			<pubDate>Sun, 03 Dec 2017 19:30:40 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message27965/topic3240/">Очистка таблиц Quikа по OnCleanUp может вырубить скрипт. Как уберечься?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Анализ показал, что при крайне маловероятном стечении обстоятельств (4 месяца 24/7 все работало нормально), может начаться обработка OnTransReply, когда TEname еще не инициализирована.<br />Но дело в том, что в логах есть запись об инициализации TEname и абсолютно никак после этого она не может измениться. <br />Причем между записью значения TEname и записью об этом в лог интерпретатор должен выполнить более 200 строк кода, включая создание нового файла, записи в него и гарантированного сброса на диск по flush. Правда все это происходит в потоке main.<br />Единственным разумным объяснением произошедшего является то, что поток main еще выполняется достаточно долгое время, даже после того, как lua интерпретатор наткнется на критическую ошибку в потоке Quik (в потоке, где выполнялся OnTransReply()). <br />Такое действительно возможно? <br />
			<i>27.11.2017 23:46:49, Алексей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message27965/topic3240/</link>
			<guid>http://forum.quik.ru/messages/forum10/message27965/topic3240/</guid>
			<pubDate>Mon, 27 Nov 2017 23:46:49 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
