<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: CreateDataSource]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме CreateDataSource форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Wed, 20 May 2026 07:46:20 +0300</pubDate>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80536/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_0MBwiF71" href="/user/16669/" bx-tooltip-user-id="16669">Сергей Че</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/62/" target="_blank" rel="nofollow">nikolz</a></noindex> написал:<br /> &nbsp;<noindex><a href="https://forum.quik.ru/user/16669/" target="_blank" rel="nofollow">Сергей Че</a></noindex> &nbsp;,<br />Рекомендую почитать про потоки и не только:<br />=============<br /> Спасибо за рекомандацию, но всё-таки, что произойдёт с ИД второго скрипта, если в первом выполнить &nbsp; data_source &nbsp; &nbsp;:Сlose() &nbsp;, учитывая, как было сказано выше, что хранилище свечей одно.<br />=============<br />Если библиотека QLua написана правильно ( а сомнений в этом пока нет), то ничего существенного не произойдет.<br />-------------------<br />Обычно, если ресурс используется различными приложениями , например , библиотеки, то создается счетчик обращений к данному ресурсу. если подписались, то счетчик увеличивается, а если отписались то уменьшается.<br />Ресурс освобождается лишь при нулевом счетчике. &nbsp; <br />
			<i>15.12.2025 13:11:04, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80536/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80536/topic9386/</guid>
			<pubDate>Mon, 15 Dec 2025 13:11:04 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80531/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_3yljS2Yb" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br /> <noindex><a href="https://forum.quik.ru/user/16669/" target="_blank" rel="nofollow">Сергей Че</a></noindex> ,<br />Рекомендую почитать про потоки и не только:<br />=============<br />Спасибо за рекомандацию, но всё-таки, что произойдёт с ИД второго скрипта, если в первом выполнить <B><span class="bx-font" style="font-family:monospace">data_source</span></B><B><span class="bx-font" style="font-family:monospace">:Сlose()</span></B>, учитывая, как было сказано выше, что хранилище свечей одно. <br />
			<i>14.12.2025 17:59:43, Сергей Че.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80531/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80531/topic9386/</guid>
			<pubDate>Sun, 14 Dec 2025 17:59:43 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80530/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<noindex><a href="https://forum.quik.ru/user/16669/" target="_blank" rel="nofollow">Сергей Че</a></noindex>,<br />Рекомендую почитать про потоки и не только:<br />[FILE ID=13007] <br />
			<img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=13007&" width="630" height="548" /><br /><i>14.12.2025 17:24:33, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80530/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80530/topic9386/</guid>
			<pubDate>Sun, 14 Dec 2025 17:24:33 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80529/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_qMMXK3wd" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />Сергей Че, Вы что-то путаете<br />Функция reateDataSource()? никакие потоки не открывает. Я вам это уже давно сказал. Вы опять пошли по кругу.<br />=============<br />Ну окей, не &quot;поток данных&quot;, а &quot;источник данных&quot;, ведь именно так и переводится &quot;CreateDataSource&quot; - &quot;Создать Источник Данных&quot;.<br />Это что-то изменило для вас? <br />
			<i>14.12.2025 17:24:12, Сергей Че.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80529/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80529/topic9386/</guid>
			<pubDate>Sun, 14 Dec 2025 17:24:12 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80528/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_6GVqbW25" href="/user/16669/" bx-tooltip-user-id="16669">Сергей Че</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/13952/" target="_blank" rel="nofollow">TGB</a></noindex> написал:<br /> &nbsp;<br />====quote====<br /> <noindex><a href="/user/16669/" target="_blank" rel="nofollow">Сергей Че</a></noindex> &nbsp;написал:<br />Сколько потоков создаст функция CreateDataSource()?<br />=============<br /> &nbsp; &nbsp; &nbsp; Вы, наверное, хотели спросить: сколько хранилищ свечей создаст функция CreateDataSource()?<br /> Ответ: одно.<br />=============<br /> И что будет, если в одном из скриптов вызвать &nbsp; data_source:Close() &nbsp;?<br />Другой скрипт обломается?<br />=============<br />Сергей Че, Вы что-то путаете<br />Функция reateDataSource()? никакие потоки не открывает. Я вам это уже давно сказал. Вы опять пошли по кругу. <br />
			<i>14.12.2025 17:15:19, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80528/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80528/topic9386/</guid>
			<pubDate>Sun, 14 Dec 2025 17:15:19 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80525/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_Dfz8MDun" href="/user/13952/" bx-tooltip-user-id="13952">TGB</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/16669/" target="_blank" rel="nofollow">Сергей Че</a></noindex> написал:<br />Сколько потоков создаст функция CreateDataSource()?<br />=============<br /> &nbsp; &nbsp; &nbsp;Вы, наверное, хотели спросить: сколько хранилищ свечей создаст функция CreateDataSource()?<br /> Ответ: одно.<br />=============<br />И что будет, если в одном из скриптов вызвать <B><span class="bx-font" style="font-family:monospace">data_source:Close()</span></B>?<br />Другой скрипт обломается? <br />
			<i>14.12.2025 16:22:41, Сергей Че.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80525/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80525/topic9386/</guid>
			<pubDate>Sun, 14 Dec 2025 16:22:41 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80524/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_4RTA7XGg" href="/user/16669/" bx-tooltip-user-id="16669">Сергей Че</a> написал:<br />Сколько потоков создаст функция CreateDataSource()?<br />=============<br /> &nbsp; &nbsp; Вы, наверное, хотели спросить: сколько хранилищ свечей создаст функция CreateDataSource()?<br /> Ответ: одно. <br />
			<i>14.12.2025 16:12:45, TGB.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80524/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80524/topic9386/</guid>
			<pubDate>Sun, 14 Dec 2025 16:12:45 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80523/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_NPt6ySS1" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/16669/" target="_blank" rel="nofollow">Сергей Че</a></noindex> написал:<br /> &nbsp;<br />====quote====<br /> <noindex><a href="/user/62/" target="_blank" rel="nofollow">nikolz</a></noindex> &nbsp;написал:<br />запуск каждого скрипта добавляет ровно один поток - функция main.<br />=============<br /> &nbsp;То есть сколько скриптов запрашивают поток, столько же потоков запрашивает КВИК? Даже на один и тот же инстумент?<br />=============<br /> нет. Когда запускается скрипт, то функция main запускается в отдельном потоке. <br />Это делается &nbsp;для функции main, даже если в скрипте лишь эта функция пустая. <br />так реализован механизм запуска скрипта.<br />=============<br />Я не об этом.<br />Есть 2 скрипта. У каждого своя функция main. Каждый скрипт запрашивает данные по одноиу и тому же инструменту на одном и том же таймфрейме.<br />Сколько потоков создаст функция <B><span class="bx-font" style="font-family:monospace">CreateDataSource()</span></B>? <br />
			<i>14.12.2025 15:55:22, Сергей Че.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80523/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80523/topic9386/</guid>
			<pubDate>Sun, 14 Dec 2025 15:55:22 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80510/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_r9f1Z7EA" href="/user/16669/" bx-tooltip-user-id="16669">Сергей Че</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/62/" target="_blank" rel="nofollow">nikolz</a></noindex> написал:<br />запуск каждого скрипта добавляет ровно один поток - функция main.<br />=============<br /> То есть сколько скриптов запрашивают поток, столько же потоков запрашивает КВИК? Даже на один и тот же инстумент?<br />=============<br />нет. Когда запускается скрипт, то функция main запускается в отдельном потоке. <br />Это делается &nbsp;для функции main, даже если в скрипте лишь эта функция пустая. <br />так реализован механизм запуска скрипта. <br />
			<i>14.12.2025 11:15:48, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80510/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80510/topic9386/</guid>
			<pubDate>Sun, 14 Dec 2025 11:15:48 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80506/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_1UYWbo5O" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />запуск каждого скрипта добавляет ровно один поток - функция main.<br />=============<br />То есть сколько скриптов запрашивают поток, столько же потоков запрашивает КВИК? Даже на один и тот же инстумент? <br />
			<i>13.12.2025 19:10:53, Сергей Че.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80506/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80506/topic9386/</guid>
			<pubDate>Sat, 13 Dec 2025 19:10:53 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80504/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			запуск каждого скрипта добавляет ровно один поток - функция main. <br />
			<i>13.12.2025 18:46:14, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80504/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80504/topic9386/</guid>
			<pubDate>Sat, 13 Dec 2025 18:46:14 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80503/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_k5qFWu7D" href="/user/16669/" bx-tooltip-user-id="16669">Сергей Че</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/62/" target="_blank" rel="nofollow">nikolz</a></noindex> написал:<br />=============<br /> В рамках одного скрипта (торгового робота) понятно, что &nbsp;поток будет один .<br />Хоть я 10 раз выполню &nbsp; CreateDataSource &nbsp; &nbsp;() &nbsp; с одними и теми же параметрами.<br />А если разные скрипты (торговые роботы) решили поторговать одним и тем же инструментом?<br />=============<br />Реально подписку делает терминал &nbsp;а не скрипт, Скрипт это VMLua (виртуальная машина) . <br />QLua - это и есть библиотека для связи скриптов с терминалом, а через него с сервером.<br />Можно не делать никакую подписку, а открыть график в терминале это и вызовет обращение терминала к серверу за данными. <br />Неважно сколько вы запустите скриптов по одному инструменту , сервер будет посылать &nbsp;свечи лишь в одном экземпляре. &nbsp;<br />------<br />А теперь тест:<br />запускаем терминал:<br />[FILE ID=13003]<br />18 потоков<br /><br />1-ый скрипт<br />[FILE ID=13004]<br /><br />2-ой скрипт<br />[FILE ID=13005]<br /><br />это текст скриптов (изменяем имя log файла и имя скрипта)<br />
====code====
<pre>minfo=debug.getinfo(1, "S").source:sub(2);&nbsp;&nbsp;p=minfo:match("(.*&#91;/&#92;&#92;&#93;)") or "."
logf =p.."/lua_log.txt" Log = io.open(logf,"w")
class = "QJSIM"
sec = "SBER"&nbsp;&nbsp;&nbsp;&nbsp;-- КОД ИНСТРУМЕНТА
local t={}
function main()
&nbsp;&nbsp;&nbsp;while true do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local x=CreateDataSource(class, sec,1);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local y=x;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log:write(tostring(x).."&#92;n");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log:write(tostring(y).."&#92;n");
&nbsp;&nbsp; sleep(1000);
&nbsp;&nbsp;&nbsp;end
end
</pre>
=============
<br />это таблицы которые создали скрипты:<br /><br />[FILE ID=13006] <br />
			<img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=13003&" width="1610" height="298" /><br /><img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=13004&" width="1520" height="180" /><br /><img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=13005&" width="1658" height="208" /><br /><img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=13006&" width="600" height="710" /><br /><i>13.12.2025 18:45:10, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80503/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80503/topic9386/</guid>
			<pubDate>Sat, 13 Dec 2025 18:45:10 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80502/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_8lw1zsuL" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />=============<br />В рамках одного скрипта (торгового робота) понятно, что <B>поток будет один</B>.<br />Хоть я 10 раз выполню <B><span class="bx-font" style="font-family:monospace">CreateDataSource</span></B><span class="bx-font" style="font-family:monospace"><B>()</B></span> с одними и теми же параметрами.<br />А если разные скрипты (торговые роботы) решили поторговать одним и тем же инструментом? <br />
			<i>13.12.2025 17:37:51, Сергей Че.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80502/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80502/topic9386/</guid>
			<pubDate>Sat, 13 Dec 2025 17:37:51 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80500/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Вот тест:<br />-------------------<br />Запускаем QUIK<br />Смотрим сколько потоков:<br />[FILE ID=12998]<br /><br />их 11<br />теперь стартуем скрипт который &nbsp;в main делает подписку много раз:<br />Это лог файл таблиц, которые созданы по подписке
====code====
<pre>table: 0000014B7BA76EA0
table: 0000014B7BA76EA0
table: 0000014B7BA76760
table: 0000014B7BA76760
table: 0000014B7BA77020
table: 0000014B7BA77020
table: 0000014B7BA769A0
table: 0000014B7BA769A0
table: 0000014B7BA765A0
table: 0000014B7BA765A0
table: 0000014B7BA762A0
table: 0000014B7BA762A0
table: 0000014B7BA76AE0
table: 0000014B7BA76AE0
table: 0000014B7BA76BE0
table: 0000014B7BA76BE0
table: 0000014B7BA76620
table: 0000014B7BA76620
table: 0000014B7BA77A20
table: 0000014B7BA77A20
table: 0000014B7BA771A0
table: 0000014B7BA771A0
table: 0000014B7BA778E0
table: 0000014B7BA778E0
table: 0000014B7BA77F20
table: 0000014B7BA77F20
table: 0000014B7BA780A0
table: 0000014B7BA780A0
table: 0000014B7BA77C60
table: 0000014B7BA77C60
table: 0000014B7BA772A0
table: 0000014B7BA772A0
table: 0000014B7BA77220
table: 0000014B7BA77220
table: 0000014B7BA77360
table: 0000014B7BA77360

</pre>
=============
теперь смотрим сколько же потоков?<br />[FILE ID=12999]<br />их 12 <br />
			<img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=12998&" width="1642" height="716" /><br /><img src="https://forum.quik.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=12999&" width="1648" height="720" /><br /><i>13.12.2025 11:55:46, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80500/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80500/topic9386/</guid>
			<pubDate>Sat, 13 Dec 2025 11:55:46 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80499/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_MtJXTILm" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a> написал:<br />Здесь вопрос более тонкий. Кеш сделали и ладно. Я бы не стал полагаться на GC, все же запомнить уже заказанные потоки не сложно.<br />А вот закрытие оных уже вопрос. Я меня есть счетчик использования потоков. Т.к. один и тот же может использоваться много раз. И по мере того, как он перестает быть необходимым счетчик уменьшается, и если он 0, то вызывается Close. Дабы закрыть поток.<br /><br />Но т.к. скрипт может быть остановлен принудительно, что закрыть все открытие потоки уже не всегда будет возможно. Как себя ведет терминал при таком закрытии скрипта - не ясно. Надеюсь, что есть внутренний кеш.. В древних версиях терминала (на ранней 7-ой, кажется) при заказе потоков без закрытия или вызова GC - терминал начинал есть память.<br />=============<br />Я полагаю, что эта таблица лишь &nbsp;хранит указатели, а не заказывает новые потоки. Поток данных &nbsp;будет один. &nbsp;Таблиц можно создать сколько угодно. Затраты копейки. Если это таблица не &nbsp;сохраняется как глобальная , то отсутствие на нее ссылки приведет к уничтожению ее сборщиком мусора. <br />
			<i>13.12.2025 10:49:47, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80499/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80499/topic9386/</guid>
			<pubDate>Sat, 13 Dec 2025 10:49:47 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80495/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_8gF3U4Vo" href="/user/16669/" bx-tooltip-user-id="16669">Сергей Че</a> написал:<br />А разве может быть ошибка при вызове &nbsp; Close() &nbsp; для &nbsp;непустого &nbsp;data_source?<br />Конечный пользователь, опирающийся на руководство &nbsp;QLua , вообще не должен быть в курсе о внутренней кухне (кешируется там что-то или нет).<br />Есть функция &nbsp; Close() &nbsp;, значит она должна всё корректно закрыть.<br />=============<br />Во-первых, он уже может быть закрыт. А у Вас ссылка сохранена. Во-вторых, если этот поток в кеше был выдан по другому запросу, в вашем примере это другая таблица sec, то закрывая поток, об этом не узнаю другие пользователи этого потока.<br /><br />Эта задача, похожа на задачу GC. Есть ссылка, её используют несколько потребителей. Соответственно закрыть ссылку можно только если счетчик использования 0. <br />
			<i>12.12.2025 15:44:03, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80495/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80495/topic9386/</guid>
			<pubDate>Fri, 12 Dec 2025 15:44:03 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80494/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_p02NK1dc" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a> написал:<br />Если закрыть поток, который в кеше и используется, то будет ошибка обращения.<br />=============<br />А разве может быть ошибка при вызове <span class="bx-font" style="font-family:monospace"><B>Close()</B></span> для <B>непустого</B> data_source?<br />Конечный пользователь, опирающийся на руководство <B>QLua</B>, вообще не должен быть в курсе о внутренней кухне (кешируется там что-то или нет).<br />Есть функция <B><span class="bx-font" style="font-family:monospace">Close()</span></B>, значит она должна всё корректно закрыть. <br />
			<i>12.12.2025 14:44:27, Сергей Че.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80494/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80494/topic9386/</guid>
			<pubDate>Fri, 12 Dec 2025 14:44:27 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80493/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_jh7FoMGj" href="/user/16669/" bx-tooltip-user-id="16669">Сергей Че</a> написал:<br />sec.data_source:Close()<br />=============<br />Зачем закрывать, если он уже есть. Наоборот, просто вернуть существующий.<br />Если закрыть поток, который в кеше и используется, то будет ошибка обращения. <br />
			<i>12.12.2025 14:31:27, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80493/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80493/topic9386/</guid>
			<pubDate>Fri, 12 Dec 2025 14:31:27 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80492/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_1BM10a96" href="/user/3132/" bx-tooltip-user-id="3132">Nikolay</a> написал:<br />Здесь вопрос более тонкий. Кеш сделали и ладно. Я бы не стал полагаться на GC, все же запомнить уже заказанные потоки не сложно.<br />А вот закрытие оных уже вопрос. Я меня есть счетчик использования потоков. Т.к. один и тот же может использоваться много раз. И по мере того, как он перестает быть необходимым счетчик уменьшается, и если он 0, то вызывается Close. Дабы закрыть поток.<br /><br />Но т.к. скрипт может быть остановлен принудительно, что закрыть все открытие потоки уже не всегда будет возможно. Как себя ведет терминал при таком закрытии скрипта - не ясно. Надеюсь, что есть внутренний кеш.. В древних версиях терминала (на ранней 7-ой, кажется) при заказе потоков без закрытия или вызова GC - терминал начинал есть память.<br />=============<br />Я думаю сделать так<br /><br />
====code====
<pre>if sec.data_source then&nbsp;&nbsp;-- sec - торгуемый инструмент
&nbsp;&nbsp;&nbsp;&nbsp;sec.data_source:Close()
end
sec.data_source = _G&#91; 'CreateDataSource' &#93;( sec.class, sec.code, _G&#91; 'INTERVAL_M1' &#93; )
if not sec.data_source then
&nbsp;&nbsp;&nbsp;&nbsp;log.error( '...' )
end</pre>
============= <br />
			<i>12.12.2025 13:50:30, Сергей Че.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80492/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80492/topic9386/</guid>
			<pubDate>Fri, 12 Dec 2025 13:50:30 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80490/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_QGMseUqx" href="/user/16669/" bx-tooltip-user-id="16669">Сергей Че</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/62/" target="_blank" rel="nofollow">nikolz</a></noindex> написал:<br />Указатель на колбек записывается в таблицу. Если таблицу уничтожили, то и указатель уничтожен.<br />=============<br /> А вот и нет! Функция будет жить самостоятельно, если создана до таблицы, а в таблице только ссылка на таблицу. 
====code====
<pre>&nbsp;&nbsp;$ lua
Lua&nbsp;&nbsp;5.4 . 8&nbsp;&nbsp; Copyright (C)&nbsp;&nbsp;1994&nbsp;&nbsp;-&nbsp;&nbsp;2025&nbsp;&nbsp;Lua.org, PUC - Rio
 &#62;&nbsp;&nbsp;f&nbsp;&nbsp;=&nbsp;&nbsp; function (x)&nbsp;&nbsp;return&nbsp;&nbsp;x * x&nbsp;&nbsp;end 
 &#62;&nbsp;&nbsp;f( 6 )
 36 
 &#62;&nbsp;&nbsp;t&nbsp;&nbsp;=&nbsp;&nbsp;{aaa&nbsp;&nbsp;=&nbsp;&nbsp;f}
 &#62;&nbsp;&nbsp; t.aaa ( 8 )
 64 
 &#62;&nbsp;&nbsp;t&nbsp;&nbsp;=&nbsp;&nbsp; nil 
 &#62;&nbsp;&nbsp; t.aaa ( 3 )
stdin: 1 : attempt to index a&nbsp;&nbsp;nil&nbsp;&nbsp;value (global&nbsp;&nbsp;'t' )
stack traceback:
&nbsp;&nbsp; stdin: 1 :&nbsp;&nbsp;in&nbsp;&nbsp;main chunk
&nbsp;&nbsp; &#91;C&#93;:&nbsp;&nbsp;in&nbsp;&nbsp;?
 &#62;&nbsp;&nbsp;f( 4 )
 16&nbsp;&nbsp; </pre>
=============
 <br />=============<br />А кто ее вызывать будет и как? <br />
			<i>12.12.2025 13:21:09, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80490/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80490/topic9386/</guid>
			<pubDate>Fri, 12 Dec 2025 13:21:09 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80489/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_q9iwRVpm" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />Указатель на колбек записывается в таблицу. Если таблицу уничтожили, то и указатель уничтожен.<br />=============<br />А вот и нет! Функция будет жить самостоятельно, если создана до таблицы, а в таблице только ссылка на таблицу.
====code====
<pre>$ lua
Lua 5.4.8&nbsp;&nbsp;Copyright (C) 1994-2025 Lua.org, PUC-Rio
&#62; f = function(x) return x*x end
&#62; f(6)
36
&#62; t = {aaa = f}
&#62; t.aaa(8)
64
&#62; t = nil
&#62; t.aaa(3)
stdin:1: attempt to index a nil value (global 't')
stack traceback:
&nbsp;&nbsp;&nbsp;stdin:1: in main chunk
&nbsp;&nbsp;&nbsp;&#91;C&#93;: in ?
&#62; f(4)
16</pre>
============= <br />
			<i>12.12.2025 13:15:18, Сергей Че.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80489/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80489/topic9386/</guid>
			<pubDate>Fri, 12 Dec 2025 13:15:18 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80488/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Здесь вопрос более тонкий. Кеш сделали и ладно. Я бы не стал полагаться на GC, все же запомнить уже заказанные потоки не сложно.<br />А вот закрытие оных уже вопрос. Я меня есть счетчик использования потоков. Т.к. один и тот же может использоваться много раз. И по мере того, как он перестает быть необходимым счетчик уменьшается, и если он 0, то вызывается Close. Дабы закрыть поток.<br /><br />Но т.к. скрипт может быть остановлен принудительно, что закрыть все открытие потоки уже не всегда будет возможно. Как себя ведет терминал при таком закрытии скрипта - не ясно. Надеюсь, что есть внутренний кеш.. В древних версиях терминала (на ранней 7-ой, кажется) при заказе потоков без закрытия или вызова GC - терминал начинал есть память. <br />
			<i>12.12.2025 13:09:19, Nikolay.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80488/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80488/topic9386/</guid>
			<pubDate>Fri, 12 Dec 2025 13:09:19 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80487/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Указатель на колбек записывается в таблицу. Если таблицу уничтожили, то и указатель уничтожен. <br />
			<i>12.12.2025 13:03:04, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80487/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80487/topic9386/</guid>
			<pubDate>Fri, 12 Dec 2025 13:03:04 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80486/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_dPHgbrjs" href="/user/16669/" bx-tooltip-user-id="16669">Сергей Че</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/62/" target="_blank" rel="nofollow">nikolz</a></noindex> написал:<br />Эта таблица ничего не триггереет. Она просто содержит указатели на функции.<br />Все затертые таблицы вообще становятся недоступными и их сборщик соберет.<br />=============<br /> Так значит предыдущая функция-колббек будет по-прежнему вызываться квиком?<br />=============<br />Поясните вопрос. <br />какие предыдущие? Вы что делаете кучу колбеков на один и тот же источник ?<br />А нафига? <br />
			<i>12.12.2025 13:00:41, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80486/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80486/topic9386/</guid>
			<pubDate>Fri, 12 Dec 2025 13:00:41 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80485/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_wXdqzK2M" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />Эта таблица ничего не триггереет. Она просто содержит указатели на функции.<br />Все затертые таблицы вообще становятся недоступными и их сборщик соберет.<br />=============<br />Так значит предыдущая функция-колббек будет по-прежнему вызываться квиком? <br />
			<i>12.12.2025 12:32:37, Сергей Че.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80485/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80485/topic9386/</guid>
			<pubDate>Fri, 12 Dec 2025 12:32:37 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80480/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_bdrRHqnm" href="/user/16669/" bx-tooltip-user-id="16669">Сергей Че</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/62/" target="_blank" rel="nofollow">nikolz</a></noindex> написал:<br />если вызывать так: <br />local x=CreateDataSource(class, sec,1);<br />то новая таблица будет просто удалять старую. <br />-------------------- <br />При повторном вызове создается новая таблица: &nbsp;
====code====
<pre>&nbsp;&nbsp;&nbsp;&nbsp;table: 0000027F53E0C620
table: 0000027F53E0C2A0
table: 0000027F53E0C3A0
table: 0000027F53E0C820
table: 0000027F53E0C460&nbsp;&nbsp;&nbsp;&nbsp;</pre>
=============
 &nbsp;<br />=============<br /> А предыдущие таблицы будут автоматически уничтожаться сборщиком мусора? Или они по-прежнему будут триггерить функцию-коллбек?<br />=============<br />Нет. &nbsp;<br />Эта таблица ничего не триггереет. Она просто содержит указатели на функции.<br />Все затертые таблицы вообще становятся недоступными и их сборщик соберет. <br />
			<i>12.12.2025 06:34:39, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80480/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80480/topic9386/</guid>
			<pubDate>Fri, 12 Dec 2025 06:34:39 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80477/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_dO0KWqSh" href="/user/62/" bx-tooltip-user-id="62">nikolz</a> написал:<br />если вызывать так: <br />local x=CreateDataSource(class, sec,1);<br />то новая таблица будет просто удалять старую. <br />-------------------- <br />При повторном вызове создается новая таблица: 
====code====
<pre>&nbsp;&nbsp;table: 0000027F53E0C620
table: 0000027F53E0C2A0
table: 0000027F53E0C3A0
table: 0000027F53E0C820
table: 0000027F53E0C460&nbsp;&nbsp;</pre>
=============
 <br />=============<br />А предыдущие таблицы будут автоматически уничтожаться сборщиком мусора? Или они по-прежнему будут триггерить функцию-коллбек? <br />
			<i>11.12.2025 19:26:32, Сергей Че.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80477/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80477/topic9386/</guid>
			<pubDate>Thu, 11 Dec 2025 19:26:32 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80476/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			если вызывать так: <br />local x=CreateDataSource(class, sec,1);<br />то новая таблица будет просто удалять старую. <br />-------------------- <br />При повторном вызове создается новая таблица:
====code====
<pre>table: 0000027F53E0C620
table: 0000027F53E0C2A0
table: 0000027F53E0C3A0
table: 0000027F53E0C820
table: 0000027F53E0C460</pre>
============= <br />
			<i>11.12.2025 18:04:00, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80476/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80476/topic9386/</guid>
			<pubDate>Thu, 11 Dec 2025 18:04:00 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80475/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			можно протестить, если разработчики не прояснят. <br />
			<i>11.12.2025 17:38:00, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80475/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80475/topic9386/</guid>
			<pubDate>Thu, 11 Dec 2025 17:38:00 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>CreateDataSource</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message80474/topic9386/">CreateDataSource</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			если создается другая, то она очевидно будет точной копией. &nbsp; <br />
			<i>11.12.2025 17:36:45, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message80474/topic9386/</link>
			<guid>http://forum.quik.ru/messages/forum10/message80474/topic9386/</guid>
			<pubDate>Thu, 11 Dec 2025 17:36:45 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
