<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Thu, 14 May 2026 20:11:25 +0300</pubDate>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message73045/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Надо обрабатывать как Reset, т е аналогично начальному соединению с сервером. &nbsp;Можно при этом учитывать учитывать принятые данные, чтобы не грузить все. &nbsp;Ситуация штатная. Ошибка, если не реализована обработка такого события. <br />
			<i>16.12.2023 09:04:15, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message73045/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message73045/topic5119/</guid>
			<pubDate>Sat, 16 Dec 2023 09:04:15 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message73042/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Раз уже здесь писали об ошибках потоков...<br />Поймал ошибку, видимо ошибка потоков. Версия 11.0.0.92, lua 5.4<br /><br />Обрыв связи, восстановление. Заново приходят все коллбеки с начала сессии до момента разрыва связи (здесь сразу вопрос - как бы это отключить?). В этот момент алгоритм находиться в цикле, перебирая некую таблицу.<br />По логу вижу, что есть сообщение колбека, есть сообщения из цикла. И в какой-то момент цикл разрушается - получает данные из другой области памяти. Итеративная переменная 10, а получены данные по индексу 20, например.<br />Или еще хуже - получены данные из совсем другой таблицы.<br /><br />Воспроизвести не могу, но явно что-то случилось с стеком, при работе двух потоков. <br />
			<i>15.12.2023 14:14:06, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message73042/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message73042/topic5119/</guid>
			<pubDate>Fri, 15 Dec 2023 14:14:06 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message61899/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Нужна помощь знатока Луа &nbsp;для переделки коннектора старой версии Луа под новую библиотеку 5.3<br /><noindex><a href="mailto:prmt@yandex.ru" target="_blank" rel="nofollow">prmt@yandex.ru</a></noindex> <br />
			<i>10.02.2022 14:39:37, Виктор Волков.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message61899/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message61899/topic5119/</guid>
			<pubDate>Thu, 10 Feb 2022 14:39:37 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message57904/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_E0yDbHgE" href="/user/15135/" bx-tooltip-user-id="15135">Александр</a> написал:<br />Добрый день, <br /><br />Подскажите пожалуйста, можно ли заказать скрипт для quik на этом форуме? Не противоречит правилам? <br />Не увидел подходящей рубрики.<br />=============<br />Кто может помочь со скриптом - просьба написать в Телеграмм aleksandr52019 &nbsp;- в ответ отправлю краткое ТЗ, договоримся о стоимости разработки. &nbsp; <br />
			<i>11.09.2021 10:40:34, Александр.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message57904/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message57904/topic5119/</guid>
			<pubDate>Sat, 11 Sep 2021 10:40:34 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message57902/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Добрый день, <br /><br />Подскажите пожалуйста, можно ли заказать скрипт для quik на этом форуме? Не противоречит правилам? <br />Не увидел подходящей рубрики. <br />
			<i>11.09.2021 10:29:04, Александр.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message57902/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message57902/topic5119/</guid>
			<pubDate>Sat, 11 Sep 2021 10:29:04 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message57720/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Очень интересно, но ничего не понятно.<br />А если версия 9.1.3.11, что тогда? И при загрузке выходит сообщение о том, что что-то там не догрузилось? <br />
			<i>31.08.2021 19:49:55, Дмитрий.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message57720/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message57720/topic5119/</guid>
			<pubDate>Tue, 31 Aug 2021 19:49:55 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message55067/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_0vEavxLm" href="/user/14016/" bx-tooltip-user-id="14016">Незнайка</a> написал:<br />Байт-код в мейнах нескольких скриптов выполняется параллельно?<br />=============<br /> &nbsp; Да.<br /> Но, основной поток QUIK, обслуживающий колбеки и таблицы QUIK (это не таблицы Lua) один. Если он блокируется в каком-либо скрипте, то перестает обслуживать остальные скрипты. <br />
			<i>24.04.2021 22:29:06, TGB.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message55067/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message55067/topic5119/</guid>
			<pubDate>Sat, 24 Apr 2021 22:29:06 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message55066/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_mc2A5LF9" href="/user/1222/" bx-tooltip-user-id="1222">Anton</a> написал:<br />Когда в мейне байткод выполняется, квик не залочен.<br />=============<br />Байт-код в мейнах нескольких скриптов выполняется параллельно? <br />
			<i>24.04.2021 20:56:37, Незнайка.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message55066/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message55066/topic5119/</guid>
			<pubDate>Sat, 24 Apr 2021 20:56:37 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message55000/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_oODINNLd" href="/user/54/" bx-tooltip-user-id="54">Старатель</a> написал:<br />Причём, вставлять можно не на каждую итерацию, а через заданное количество циклов. Это позволит не подвешивать основной поток и при этом сохранить скорость вычислений байткода в циклах.<br />=============<br /> &nbsp; То, что вы предлагаете, я сделал (в соответствии с тем, как описал в предыдущем моем комментарии) и проверил на своем стенде. <br />При "количестве циклов" = 1000 обеспечивается высокая скорость выполнения байт-кода и нет зависания.<br /> &nbsp; Ваше предложение легко реализуемо в QLua. <br />
			<i>20.04.2021 21:05:35, TGB.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message55000/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message55000/topic5119/</guid>
			<pubDate>Tue, 20 Apr 2021 21:05:35 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message54998/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_VobRFrTg" href="/user/54/" bx-tooltip-user-id="54">Старатель</a> написал:<br />Причём, вставлять можно не на каждую итерацию, а через заданное количество циклов. Это позволит не подвешивать основной поток и при этом сохранить скорость вычислений байткода в циклах.<br />=============<br /> &nbsp;То, что предлагает Старатель, наверное, имеет смысл реализовать в самом QLua.<br /> &nbsp; Это примерно следующее:<br /> &nbsp;1. Добавить в State поле счетчик. <br /> &nbsp;2. При создании State &nbsp;счетчик = 0.<br /> &nbsp;3. В цикле работы виртуальной машины Lua (исходник Lua 5.3.5 lvm.c) <br /> &nbsp; &nbsp; &nbsp;после текста:<br /> &nbsp; &nbsp; &nbsp; &nbsp; Instruction i;<br /> &nbsp; &nbsp; &nbsp; &nbsp; StkId ra;<br /><br /> &nbsp; &nbsp; добавить:<br /> &nbsp; &nbsp; if (++L-&gt; счетчик &nbsp;&gt; !00) &nbsp;{ &nbsp; // &nbsp;100 &nbsp;это конечно же надо задать константой &nbsp;--<br /> &nbsp; &nbsp; &nbsp;L-&gt; счетчик = 0;<br /> &nbsp; &nbsp; &nbsp;lua_unlock(L); lua_lock(L);<br /> &nbsp; &nbsp; } <br />
			<i>20.04.2021 18:58:02, TGB.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message54998/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message54998/topic5119/</guid>
			<pubDate>Tue, 20 Apr 2021 18:58:02 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message54990/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_EQLn8m38" href="/user/82/" bx-tooltip-user-id="82">swerg</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/54/" target="_blank" rel="nofollow">Старатель</a></noindex> написал:<br />В 7-м квике не зависает даже более примитивный код:<br />=============<br />Мне все лень было проверить, но вот тоже такое впечатление, что в Lua 5.1 более грамотно были сделаны локи многопоточности. А в 5.3 совсем халтуру какую-то сделали.<br />=============<br />По всей видимости в 5.1 на каждой итерации цикла вызывались lua_unlock/lua_lock.<br />А в 5.3 этого нет, если в цикле только байткод, что значительно уменьшает время вычислений таких циклов.<br />Если цикл продолжительный, чтобы не было зависаний, можно вставить внутрь цикла любую с-функцию (не обязательно sleep). Причём, вставлять можно не на каждую итерацию, а через заданное количество циклов. Это позволит не подвешивать основной поток и при этом сохранить скорость вычислений байткода в циклах.<br />Т.ч., нельзя назвать эти изменения в 5.3 "халтурой." <br />
			<i>20.04.2021 14:08:58, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message54990/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message54990/topic5119/</guid>
			<pubDate>Tue, 20 Apr 2021 14:08:58 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message52888/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_LzN5oh5f" href="/user/82/" bx-tooltip-user-id="82">swerg</a>, Это основной закон программирования, действующий почти для любого софта: самая удачная версия примерно третья, далее идёт загаживание продукта всяким дерьмом, и он медленно умирает. То же с книгами (достаточно вспомнить хотя бы &quot;Робинзона Крузо&quot; с его дурацкими &quot;продолжениями&quot;), с фильмами (не говоря уже про сериалы), с операционками (MS-DOS 3.3+Win-95+NT4/5+всё остальное дерьмо), с браузерами (здесь уже буквально все версии изуродованы до уровня половой тряпки) и со всем остальным. У гениев чуть иначе: &quot;Бетховен написал три симфонии: первую, пятую и девятую&quot;. <img src="http://forum.quik.ru/upload/main/smiles/5/icon_smile.png" border="0" data-code=":smile:" data-definition="SD" alt=":smile:" style="width:16px;height:16px;" title="С улыбкой" class="bx-smile" /> &nbsp; <br />
			<i>13.02.2021 11:39:17, Владимир.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message52888/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message52888/topic5119/</guid>
			<pubDate>Sat, 13 Feb 2021 11:39:17 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message52884/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_gN4x0JQ3" href="/user/54/" bx-tooltip-user-id="54">Старатель</a> написал:<br />В 7-м квике не зависает даже более примитивный код:<br /><br />=============<br />Мне все лень было проверить, но вот тоже такое впечатление, что в Lua 5.1 более грамотно были сделаны локи многопоточности. А в 5.3 совсем халтуру какую-то сделали. <br />
			<i>13.02.2021 09:48:05, swerg.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message52884/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message52884/topic5119/</guid>
			<pubDate>Sat, 13 Feb 2021 09:48:05 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message52880/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_exkok6OJ" href="/user/1222/" bx-tooltip-user-id="1222">Anton</a> написал:<br />А вот если заменить на примитивные операции, дающие только байткод, то квик зависнет.<br />=============<br /><br />В 7-м квике не зависает даже более примитивный код:<br />
====code====
<pre>local run = true
function main()
&nbsp;&nbsp;while run do end&nbsp;&nbsp;
end
function OnAllTrade(alltrade) end</pre>
============= <br />
			<i>12.02.2021 22:01:53, Старатель.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message52880/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message52880/topic5119/</guid>
			<pubDate>Fri, 12 Feb 2021 22:01:53 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message52840/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_gnBLSDOS" href="/user/1222/" bx-tooltip-user-id="1222">Anton</a> написал:<br />ничего квикового из него нельзя было бы трогать<br />=============<br />С этим, впрочем, погорячился, много чего таки можно было бы трогать. <br />
			<i>12.02.2021 07:57:28, Anton.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message52840/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message52840/topic5119/</guid>
			<pubDate>Fri, 12 Feb 2021 07:57:28 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message52839/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_8a7h3uH1" href="/user/14016/" bx-tooltip-user-id="14016">Незнайка</a> написал:<br />Пока выполняется байткод (в любом потоке) сам QUIK залочен?<br />=============<br />Когда в мейне байткод выполняется, квик не залочен. Но если квику нужно вызвать колбек, он будет ждать, пока появится &quot;дырка&quot; в мейне, чтобы захватить лок. Пример выше это может показать, если его изменить (убрать колбек и запускать цикл в мейне с задержкой).<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_9Nv61SXf" href="/user/14016/" bx-tooltip-user-id="14016">Незнайка</a> написал:<br />А зачем понадобилось их реализовывать?<br />=============<br />Иначе любое обращение к луа из двух потоков одновременно ломало бы стек луа и вызывало крэш. Без локов можно было бы сделать, если бы мейн был отдельным скриптом, как выше <a class="blog-p-user-name" id="bp_pzWBwio2" href="/user/82/" bx-tooltip-user-id="82">swerg</a> предлагал, но такой мейн малофункционален был бы сам по себе, ничего квикового из него нельзя было бы трогать. <br />
			<i>12.02.2021 07:24:18, Anton.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message52839/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message52839/topic5119/</guid>
			<pubDate>Fri, 12 Feb 2021 07:24:18 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message52811/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_7eL4Gn3t" href="/user/14016/" bx-tooltip-user-id="14016">Незнайка</a> написал:<br />Пока выполняется байткод (в любом потоке) сам QUIK залочен?<br />=============<br />Ну да, ваш же тест <noindex><a href="https://forum.quik.ru/messages/forum10/message52781/topic5119/#message52781" target="_blank" rel="nofollow">выше</a></noindex> это и подтверждает.<br />Просто это было не так очевидно в скриптах, где байткод перемежается с си-функциями. Не далеко от QPILE ушли &nbsp;<img src="http://forum.quik.ru/upload/main/smiles/5/icon_confuse.png" border="0" data-code=":what:" data-definition="SD" alt=":what:" style="width:16px;height:16px;" title="Озадаченно" class="bx-smile" /> <br />
			<i>11.02.2021 11:48:50, Незнайка.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message52811/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message52811/topic5119/</guid>
			<pubDate>Thu, 11 Feb 2021 11:48:50 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message52810/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_vb31XrHf" href="/user/1222/" bx-tooltip-user-id="1222">Anton</a> написал:<br />байткод всегда выполняется под локом<br />=============<br />Пока выполняется байткод (в любом потоке) сам QUIK залочен?<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_fju5jZoB" href="/user/1222/" bx-tooltip-user-id="1222">Anton</a> написал:<br />Арке надо было только реализовать lua_lock/lua_unlock<br />=============<br />А зачем понадобилось их реализовывать?<br />Ну выполнялись бы потоки параллельно. А то так стопорится скрипт на каждом шаге, переключаясь то на один поток, то на другой. <br />
			<i>11.02.2021 11:26:36, Незнайка.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message52810/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message52810/topic5119/</guid>
			<pubDate>Thu, 11 Feb 2021 11:26:36 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message52781/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_VzRUDvBr" href="/user/14016/" bx-tooltip-user-id="14016">Незнайка</a> написал:<br />Как можно в этом убедиться?<br />=============<br />1. Обратите внимание, что первое действие в <noindex><a href="https://www.lua.org/source/5.3/lapi.c.html#lua_pcallk" target="_blank" rel="nofollow">lua_pcallk</a></noindex> - захват лока. Любое выполнение луа из квика начинается через lua_pcallk.<br />2. Обратите внимание на <noindex><a href="https://www.lua.org/source/5.3/ldo.c.html#luaD_precall" target="_blank" rel="nofollow">ветку для light C function</a></noindex>, в частности на строки (также ответ на второй вопрос)<br />
====code====
<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lua_unlock(L);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n = (*f)(L);&nbsp;&nbsp;/* do the actual call */
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lua_lock(L);</pre>
=============
3. Обратите внимание, что <noindex><a href="https://www.lua.org/source/5.3/lvm.c.html#luaV_execute" target="_blank" rel="nofollow">сама луа-машина</a></noindex> лок нигде не выпускает. На самом деле есть исключения, выпускает и тут же захватывает ровно в трех местах, после newtable, pushcclosure и concat, что в целом картины не меняет, их можно рассматривать как заинлайненные сишные функции.<br /><br />На практике - попробуйте приведенный выше скрипт. В нем вызываются math.sqrt - сишные. Можете заменить на любые функции из qlua. А вот если заменить на примитивные операции, дающие только байткод, то квик зависнет. Например (квик придется прибивать, будьте готовы)<br />
====code====
<pre>local run = true
local nshow = 0

function OnAllTrade()
&nbsp;&nbsp; if nshow &#60; 10 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintDbgStr('OnAllTrade')
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nshow = nshow + 1
&nbsp;&nbsp; end
end

function dummy(i)
&nbsp;&nbsp; local a = 1
&nbsp;&nbsp; for i = 1, 1000000 do a = a + i end
end

function main()
&nbsp;&nbsp; PrintDbgStr('Before loop')
&nbsp;&nbsp; for i = 0, 10000000 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dummy(i)
&nbsp;&nbsp; end
&nbsp;&nbsp; PrintDbgStr('After loop')
end
</pre>
============= <br />
			<i>10.02.2021 15:08:23, Anton.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message52781/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message52781/topic5119/</guid>
			<pubDate>Wed, 10 Feb 2021 15:08:23 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message52779/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_8VGbPDfa" href="/user/1222/" bx-tooltip-user-id="1222">Anton</a> написал:<br />Сишные функции - любые, из самого луа, из qlua выполняются без лока<br />=============<br />Как можно в этом убедиться?<br /><br />При вызове, скажем сишной функции из самого lua, сначала ставится lua_lock потом выполняется функция, затем lua_unlock<br />или в обратном порядке: lua_unlock - выполнение функции - lua_lock? <br />
			<i>10.02.2021 13:46:10, Незнайка.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message52779/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message52779/topic5119/</guid>
			<pubDate>Wed, 10 Feb 2021 13:46:10 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message52768/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_42gPeJIf" href="/user/1222/" bx-tooltip-user-id="1222">Anton</a> написал:<br />Забегу-таки вперед паровоза. Без второго потока пользовательский мейн вообще нельзя было бы выполнить от слова никак. Были бы только колбеки, как в индикаторах.<br />=============<br /><br />На мой взгляд, задумка оказалась неудачной.<br />У разработчиков, очевидно, была необходимость сделать замену QPILE с его раз в секунду выполнением, причем в отдельном потоке. Для чего и была сделана main().<br />Но дальше началась мутная каша.<br /><br />На мой взгляд, надо было сделать две категории скриптов Lua (помимо индикаторов):<br />1) Чисто событийный скрипт. С нем могут быть только обработчики событий. Срабатывает что-либо в нём только по событиям, в одном потоке (не обязательно основном, но <U>в одном</U>). Для особо скучающих добавить еще периодическое настраиваемое событие таймера, что просто.<br />2) Скрипт, выполняющий бесконечный цикл исключительно в отдельном потоке. Но опять же <U>только в одном потоке</U>, пусть и отдельном. Это будет просто полноценная замена QPile и радость любителям постоянно что-то колбась без остановки.<br /><br />А вот замешивание в одну кашу двухпоточности в рамках одного скрипта лишь добавляет слишком сложных глюков, при этом постоянно получая кашу в анных, да еще и залезая в дедлоки порой. Никакой пользы при этом это не приносит совершенно, считаю. <br />
			<i>10.02.2021 13:27:48, swerg.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message52768/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message52768/topic5119/</guid>
			<pubDate>Wed, 10 Feb 2021 13:27:48 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message52765/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_GMKm1SpB" href="/user/14016/" bx-tooltip-user-id="14016">Незнайка</a> написал:<br />в т.ч. и сишные функции из qlua<br />=============<br />Нет. Сишные функции - любые, из самого луа, из qlua, из пользовательской длл - выполняются без лока. Под локом только байткод. Конкретно в qlua все функции сишные, в самом луа библиотечные функции тоже все сишные.<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_ndGslAiU" href="/user/14016/" bx-tooltip-user-id="14016">Незнайка</a> написал:<br />Вопрос к разработчикам<br />=============<br />Забегу-таки вперед паровоза. Без второго потока пользовательский мейн вообще нельзя было бы выполнить от слова никак. Были бы только колбеки, как в индикаторах. <br />
			<i>10.02.2021 12:49:39, Anton.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message52765/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message52765/topic5119/</guid>
			<pubDate>Wed, 10 Feb 2021 12:49:39 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message52745/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_I38dltjh" href="/user/1222/" bx-tooltip-user-id="1222">Anton</a> написал:<br />байткод всегда выполняется под локом, а когда надо вызвать сишную функцию, лок снимается и после возврата захватывается снова. Арке надо было только реализовать lua_lock/lua_unlock, все остальное уже готово.<br />=============<br />Т.е., весь луа-код, в т.ч. и сишные функции из qlua, не может выполняться одновременно в двух потоках?<br />Ну и зачем тогда нужно было городить весь этот огород с двумя потоками, если они всё равно не работают параллельно?<br /><br />Вопрос к <B>разработчикам</B>: какие преимущества дала такая двухпоточная модель работы Lua-скриптов? <br />
			<i>09.02.2021 14:45:05, Незнайка.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message52745/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message52745/topic5119/</guid>
			<pubDate>Tue, 09 Feb 2021 14:45:05 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message52169/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_ki5bqgID" href="/user/13952/" bx-tooltip-user-id="13952">TGB</a> написал:<br /> &nbsp; выкладывать библиотеки импорта (.lib) функций Lua53.dll (Lua54.dll и т.д.), например, в папке хранения файла info.exe. Понятно, что такие библиотеки можно создать на основе файлов dll, но, наверное, не все пользователи знают, как это сделать. Эти библиотеки нужны при перетрансляции C-пакетов QLua при переходе на новые версии Lua<br />=============<br /><br />Я вот не помню как делать библиотеки импорта на память, но каждый раз просто-напросто загугливаю за 1 минуту пошаговый мануал, коих сотни; вот и всё.<br />Кто с помощью гугла не может сделать lib-файл из DLL - он, уж извините, и пакеты не перетранслирует. Даже при наличии lib-файла <br />
			<i>27.01.2021 08:33:01, swerg.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message52169/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message52169/topic5119/</guid>
			<pubDate>Wed, 27 Jan 2021 08:33:01 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message52161/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_44UZLy5X" href="/user/13952/" bx-tooltip-user-id="13952">TGB</a> написал:<br />Мой модифицированный тест управления автоматической памятью QLua &nbsp;в версии QUIK 8.11 &nbsp;Lua 5.3.5, на текущий момент времени, проблем не обнаруживает.<br />--- &nbsp;<br /> &nbsp; &nbsp; &nbsp;1. Есть вопрос к поддержке QUIK:<br /> &nbsp; &nbsp;из Lua53.dll, кроме стандартных функций C-API Lua, экспортирует около 100 дополнительных функций. Зачем это делается? <br /> Что не могут сделать разработчики QUIK, оставаясь в рамках стандартных функций C-API Lua? <br />-----<br /> &nbsp; &nbsp; &nbsp;2. Есть предложение: <br /> &nbsp; &nbsp;выкладывать библиотеки импорта (.lib) функций Lua53.dll (Lua54.dll и т.д.), например, в папке хранения файла info.exe. Понятно, что такие библиотеки можно создать на основе файлов dll, но, наверное, не все пользователи знают, как это сделать. Эти библиотеки нужны при перетрансляции C-пакетов QLua при переходе на новые версии Lua.<br />=============<br />а разве это не стандартные библиотеки с lua.org? Почему оттуда не скачать? <br />
			<i>26.01.2021 23:15:48, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message52161/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message52161/topic5119/</guid>
			<pubDate>Tue, 26 Jan 2021 23:15:48 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51940/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Мой модифицированный тест управления автоматической памятью QLua &nbsp;в версии QUIK 8.11 &nbsp;Lua 5.3.5, на текущий момент времени, проблем не обнаруживает.<br />--- &nbsp;<br /> &nbsp; &nbsp; &nbsp;1. Есть вопрос к поддержке QUIK:<br /> &nbsp; &nbsp;из Lua53.dll, кроме стандартных функций C-API Lua, экспортирует около 100 дополнительных функций. Зачем это делается? <br /> Что не могут сделать разработчики QUIK, оставаясь в рамках стандартных функций C-API Lua? <br />-----<br /> &nbsp; &nbsp; &nbsp;2. Есть предложение: <br /> &nbsp; &nbsp;выкладывать библиотеки импорта (.lib) функций Lua53.dll (Lua54.dll и т.д.), например, в папке хранения файла info.exe. Понятно, что такие библиотеки можно создать на основе файлов dll, но, наверное, не все пользователи знают, как это сделать. Эти библиотеки нужны при перетрансляции C-пакетов QLua при переходе на новые версии Lua. <br />
			<i>20.01.2021 11:45:08, TGB.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51940/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51940/topic5119/</guid>
			<pubDate>Wed, 20 Jan 2021 11:45:08 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51439/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_400JqgkF" href="/user/1222/" bx-tooltip-user-id="1222">Anton</a> написал:<br />И у такого решения есть минус, на момент выборки сообщения в потоке скрипта общее состояние квика уже другое<br />=============<br /> &nbsp; Дополнительно, насчет минуса?:<br /> &nbsp;5) так как, по появлению нового события, в предложенном решении выдается сигнал, по которому (если есть ожидание потока main &nbsp;на операции sleep_q) &nbsp;запускаются колбеки скрипта, то мы имеем более оперативную &nbsp;реакция пользовательского потока main по сравнению с существующим решением, и описанный вами фактор, в предложенном решении менее значим;<br /> &nbsp;6) в этом решении на пользовательские колбеки нет никаких ограничений (связанных с нагрузкой основного потока обслуживания скриптов), кроме понимания, того, что выполнение колбеков делается в пользовательском потоке;<br /> &nbsp;7) и еще раз: любая синхронизация (для того, кто понимает) - это геморрой, порождающий трудно исправляемые ошибки (совершенно неожиданные), от которого, если есть возможность, следует избавляться. <br />
			<i>28.12.2020 19:49:31, TGB.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51439/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51439/topic5119/</guid>
			<pubDate>Mon, 28 Dec 2020 19:49:31 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51377/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_buEQMGfH" href="/user/1222/" bx-tooltip-user-id="1222">Anton</a> написал:<br />И у такого решения есть минус, на момент выборки сообщения в потоке скрипта общее состояние квика уже другое. <br />=============<br /> &nbsp; Это не является особенностью предлагаемого решения. Это относится и к существующей реализации.<br /> &nbsp;Вообще, это неустранимый фактор в системах реального времени, к которым относится и QUIK. <br />
			<i>24.12.2020 13:17:08, TGB.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51377/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51377/topic5119/</guid>
			<pubDate>Thu, 24 Dec 2020 13:17:08 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51363/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_CigEtCvk" href="/user/13952/" bx-tooltip-user-id="13952">TGB</a> написал:<br />Обкладывать синхронизацией все используемые сишные функции в однопоточном QLua для меня неожиданное решение.<br />=============<br />А их никто и не обкладывал. Это не аркино решение, сам луа так устроен. Все очень просто, <I>байткод всегда выполняется под локом</I>, а когда надо вызвать сишную функцию, лок снимается и после возврата захватывается снова. Арке надо было только реализовать lua_lock/lua_unlock, все остальное уже готово. Тут хочу добавить, что если вы в своей длл определяете сишный колбек, то <I>он тоже без лока выполняется</I> (в отличие от луа-колбека). И это отличное место, где можно прострелить себе ногу.<br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_uKmQiIOd" href="/user/13952/" bx-tooltip-user-id="13952">TGB</a> написал:<br />Вообще, в однопоточном QLua можно было бы практически полностью отказаться от всякой синхронизации и от модификации исходного Lua.<br />=============<br />Исходный луа практически не модифицирован, добавлены только колбеки, предусмотренные в луа для взаимодействия с хостом. Сама qlua.dll ничего не хачит, использует луа как положено через стандартный апи, что местами не очень эффективно, но идеологически правильно.<br /><br />Насчет однопоточности - так можно было сделать с самого начала, теперь что-то переделывать, похоже, поздновато. И у такого решения есть минус, на момент выборки сообщения в потоке скрипта общее состояние квика уже другое. Сравните с виндовыми очередями сообщений, где позиция мыши и нажатые клавиши сохраняются для каждого сообщения, какими они были на момент генерации сообщения, это вот пример, какие сложности возникают. И арке пришлось бы тоже подобным заниматься, закончилось бы полным дампом состояния, прицепленным к каждому сообщению. А как есть - вам дали колбек, квик вас ждет в колбеке, вы забираете то, что нужно именно вам и отправляете в мейн. Тоже не все гладко, кое-что все равно асинхронно даже в колбеке, но это мизер по сравнению с адом, который был бы с наглухо зашитыми в qlua очередями. <br />
			<i>24.12.2020 08:06:46, Anton.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51363/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51363/topic5119/</guid>
			<pubDate>Thu, 24 Dec 2020 08:06:46 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message51357/topic5119/">Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_OP6cbSbC" href="/user/1222/" bx-tooltip-user-id="1222">Anton</a> написал:<br />Вы обнаружили, что на время вызова любой сишной функции (а не только sleep) луа снимает лок, и сделали неправильный вывод, подумав только на sleep. В качестве такой функции может выступить и message, как в примере, и любая встроенная в луа библиотечная функция, и любая функция qlua. <br />=============<br /> &nbsp; Обкладывать синхронизацией все используемые сишные функции в однопоточном QLua для меня неожиданное решение. Мне, казалось, что с учетом рекомендуемого ARQA способа взаимодействия колбеков c потоком main через очереди, в существующей реализации достаточно было синхронизировать только sleep.<br /> &nbsp; &nbsp;Вообще, в однопоточном QLua можно было бы практически полностью отказаться от всякой синхронизации и от модификации исходного Lua. При этом можно бы было сохранить и существующий пользовательский интерфейс обработки колбеков. Для этого можно модифицировать функцию sleep следующим образом. В модифицированной функции (например, с именем sleep_q) ожидается либо истечение интервала времени (как в sleep), либо появление данных в очередях событий скрипта. При наличии или появлении таких событий в этой функции запускаются все, соответствующие событиям, колбеки скрипта и далее работа продолжается как обычно. <br /> &nbsp; В этом варианте:<br />1)	внутри Qlua полностью отсутствует синхронизация, а вся синхронизация, связанная с обработкой очередей между основным потоком и потоком main, может быть сосредоточена в sleep_q;<br />2)	заметно разгружается основной поток (он подготавливает очереди событий (это делает и сейчас) и при необходимости выдает лишь сигнал о начале их обработки);<br />3)	для включения Lua &nbsp;в QUIK не требуется модификация исходного Lua, а значит, облегчается подключение новых версий Lua а также повышается надежность среды исполнения скриптов:<br />4)	в целом, обеспечивается простота сопровождения QUIK. <br />
			<i>23.12.2020 21:51:40, TGB.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message51357/topic5119/</link>
			<guid>http://forum.quik.ru/messages/forum10/message51357/topic5119/</guid>
			<pubDate>Wed, 23 Dec 2020 21:51:40 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
