<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Корректно ли так делать?]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Корректно ли так делать? форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sun, 26 Apr 2026 22:04:00 +0300</pubDate>
		<item>
			<title>Корректно ли так делать?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message45445/topic5470/">Корректно ли так делать?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Само по себе присвоение атомарно, выполняется под локом (см. сорцы <noindex><a href="https://www.lua.org/source/5.3/lapi.c.html#lua_setglobal" target="_blank" rel="nofollow">lua_setglobal</a></noindex>), так что с этим проблем не будет. Гонка может в вашем коде возникнуть, например<br />
====code====
<pre>local connected = false

local function OnMyConnected()
&nbsp;&nbsp;connected = true
end

local function OnMyDisconnected()
&nbsp;&nbsp;connected = false
end

local function Stub()
end

OnConnec ted = Stub
OnDisconnec ted = Stub

function main()
&nbsp;&nbsp;connected = isConnected()
&nbsp;&nbsp;-- тут состояние подключения могло измениться
&nbsp;&nbsp;OnConnec ted = OnMyConnected
&nbsp;&nbsp;-- или тут
&nbsp;&nbsp;OnDisconnec ted = OnMyDisconnected
end
</pre>
============= <br />
			<i>23.05.2020 01:37:28, Anton.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message45445/topic5470/</link>
			<guid>http://forum.quik.ru/messages/forum10/message45445/topic5470/</guid>
			<pubDate>Sat, 23 May 2020 01:37:28 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Корректно ли так делать?</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message45443/topic5470/">Корректно ли так делать?</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			====code====
<pre>-- Функция вызывается перед остановкой скрипта
function OnStop(signal)
&nbsp;&nbsp;stopped = true; -- Остановили исполнение кода 
end;

-- Функция вызывается перед закрытием квика
function OnClose()
&nbsp;&nbsp;stopped = true; -- закрыли квик, надо остановить исполнение кода
end;


function OnMyAllTrade(trade)
--Тут что-то делаем
end;

function OnMyConnected(flag)
--Тут выводим сообщение
end;

function OnFakeConnected(flag)
end;

function OnFakeAllTrade(trade)
end;

OnConnec ted = OnFakeConnected;
OnAllTr ade = OnFakeAllTrade;

function main()
&nbsp;&nbsp;OnConnec ted = OnMyConnected; --как такой подход с точки зрения потоков?
&nbsp;&nbsp;OnAllTr ade = OnMyAllTrade; --как такой подход с точки зрения потоков?
&nbsp;&nbsp;while not stopped do
&nbsp;&nbsp;&nbsp;&nbsp;sleep(1);
&nbsp;&nbsp;end; --while&nbsp;&nbsp;&nbsp;&nbsp;
end;
</pre>
=============
Есть такой код. <br />Корректно ли присваивание OnConnec ted = OnMyConnected; &nbsp; OnAllTr ade = OnMyAllTrade; <br />Функция main и колбеки работают в разных потоках. Не возникнет ли проблемы? <br />
			<i>22.05.2020 23:23:39, Александр.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message45443/topic5470/</link>
			<guid>http://forum.quik.ru/messages/forum10/message45443/topic5470/</guid>
			<pubDate>Fri, 22 May 2020 23:23:39 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
