<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[QUIK -> DDE &mdash; SetUpdateCallbackcallback в Lua C api - перезаписывает заказы.]]></title>
	<link rel="self" href="https://quik2dde.ru/extern.php?action=feed&amp;tid=416&amp;type=atom" />
	<updated>2022-10-18T11:26:02Z</updated>
	<generator>PunBB</generator>
	<id>https://quik2dde.ru/viewtopic.php?id=416</id>
		<entry>
			<title type="html"><![CDATA[Re: SetUpdateCallbackcallback в Lua C api - перезаписывает заказы.]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=3855#p3855" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Serg_ пишет:</cite><blockquote><p>Вопрос, как написать работу со стеком на Lua C api <img src="https://quik2dde.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /></p></blockquote></div><p>А что вы сделать-то хотите? по смыслу.</p>]]></content>
			<author>
				<name><![CDATA[swerg]]></name>
				<uri>https://quik2dde.ru/profile.php?id=78</uri>
			</author>
			<updated>2022-10-18T11:26:02Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=3855#p3855</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: SetUpdateCallbackcallback в Lua C api - перезаписывает заказы.]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=3854#p3854" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>swerg пишет:</cite><blockquote><p>Если написать требуемый алгоритм просто на Lua - все же будет работать и ничего пропадать не будет и не будет ошибок, верно?<br />Значит и другие стеки совершенно не нужны для вашей задачи. Раз интерпретатор Lua обходится одним стеком для того же самого.</p></blockquote></div><p>Так то оно правильно <img src="https://quik2dde.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /><br />Вопрос, как написать работу со стеком на Lua C api <img src="https://quik2dde.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></content>
			<author>
				<name><![CDATA[Serg_]]></name>
				<uri>https://quik2dde.ru/profile.php?id=3371</uri>
			</author>
			<updated>2022-10-18T11:07:48Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=3854#p3854</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: SetUpdateCallbackcallback в Lua C api - перезаписывает заказы.]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=3851#p3851" />
			<content type="html"><![CDATA[<p>Если написать требуемый алгоритм просто на Lua - все же будет работать и ничего пропадать не будет и не будет ошибок, верно?<br />Значит и другие стеки совершенно не нужны для вашей задачи. Раз интерпретатор Lua обходится одним стеком для того же самого.</p>]]></content>
			<author>
				<name><![CDATA[swerg]]></name>
				<uri>https://quik2dde.ru/profile.php?id=78</uri>
			</author>
			<updated>2022-10-18T10:19:29Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=3851#p3851</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: SetUpdateCallbackcallback в Lua C api - перезаписывает заказы.]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=3850#p3850" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>swerg пишет:</cite><blockquote><p>1) Если сделать все без потоков, с использованием переданного вам стека Lua?<br />2) Если этот же алгоритм сделать на Lua - проблема с &quot;пропаданием&quot; подписок также проявится?</p><p>Если выяснится, что на чистом Lua эта проблема есть (т.е. в 2 - ответ &quot;да&quot;) - то это просто выглядит как косяк терминала, тогда надо сообщить разработчикам.</p></blockquote></div><p>2)Нет, на чистом Lua - такой проблемы нет.<br />1)Я вот пытаюсь понять, как бы мне сделать без &quot;потоков&quot; - только на Одном переданном Lua-стека.</p><p>Тут загвоздка такая: </p><p>Предположим я заказал SetUpdateCallbackcallback к примеру по 10 инструментам сразу и все эти 10 инструментов в квике не открыты и гарантировано будут запрашивается на сервере - а значит мне придется добавлять и удалять данные из общего Lua-Стека - я предполагаю, что это приведет к ошибке.</p>]]></content>
			<author>
				<name><![CDATA[Serg_]]></name>
				<uri>https://quik2dde.ru/profile.php?id=3371</uri>
			</author>
			<updated>2022-10-18T09:54:54Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=3850#p3850</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: SetUpdateCallbackcallback в Lua C api - перезаписывает заказы.]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=3845#p3845" />
			<content type="html"><![CDATA[<p>1) Если сделать все без потоков, с использованием переданного вам стека Lua?<br />2) Если этот же алгоритм сделать на Lua - проблема с &quot;пропаданием&quot; подписок также проявится?</p><p>Если выяснится, что на чистом Lua эта проблема есть (т.е. в 2 - ответ &quot;да&quot;) - то это просто выглядит как косяк терминала, тогда надо сообщить разработчикам.</p>]]></content>
			<author>
				<name><![CDATA[swerg]]></name>
				<uri>https://quik2dde.ru/profile.php?id=78</uri>
			</author>
			<updated>2022-10-17T06:42:06Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=3845#p3845</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[SetUpdateCallbackcallback в Lua C api - перезаписывает заказы.]]></title>
			<link rel="alternate" href="https://quik2dde.ru/viewtopic.php?pid=3839#p3839" />
			<content type="html"><![CDATA[<p>SetUpdateCallbackcallback в Lua C api - перезаписывает заказы:</p><p>Из скрипта квика вызывается Сищная-функция: в нее соответственно автоматически передается или создается Lua-Стек:&nbsp; </p><br /><p>Код</p><div class="codebox"><pre><code>int my_callback(lua_State* L)
{
//Доп.пераметры извелкаем через lua_upvalueindex.

std::cout&lt;&lt;&quot;interval_int:&quot; &lt;&lt;interval_int &lt;&lt;std::endl;
}



void my_call_CreateDataSource(lua_State* L_, name_class_insrument, name_code_paper, interval_int)
{
lua_getglobal(L, &quot;CreateDataSource&quot;);          

lua_pushstring(L,_ name_class_insrument);    
lua_pushstring(L_, name_code_paper);        
lua_pushnumber(L_, interval_int);                

int status_lua_pcall = lua_pcall(L, 3, 2, 0); 



my_call_SetUpdateCallback(L_, my_callback, name_class_insrument, name_code_paper, interval_int);    //Вызываем SetUpdateCallback и передаем в нее функцкиб обратного вызова и доп.параметры.
}


int ruc_cpp(lua_State* L_main)
{



lua_State* L_1 = lua_newthread(L_main);       //Создаю &quot;поток&quot; связанный с главным стеком.
lua_State* L_2 = lua_newthread(L_main);


my_call_CreateDataSource(L_1 , &quot;TQBR&quot;, &quot;GAZP&quot;, &quot;INTERVAL_H2&quot;);
my_call_CreateDataSource(L_2 , &quot;TQBR&quot;, &quot;GAZP&quot;, &quot;INTERVAL_H4&quot;);






    //-----------------------------------------------
    for (int i = 0; i &lt; 1000000; i++)
    {
        std::this_thread::sleep_for(std::chrono::milliseconds(100)); 
    }
    //-----------------------------------------------
}</code></pre></div><br /><p>Приведенный код частично условный, чтобы не загромождать кодом страницу.</p><p>Но суть в том, что - я создаю два новых &quot;потока&quot; от главного Луа-стека:<br />-Вызываю для каждого из двух созданных &quot;потоков&quot; - функцию CreateDataSource и навешиваю колбек через SetUpdateCallback.<br />-Первый и примерно второй и третий - колбеки - выводят интервал &quot;INTERVAL_H2&quot; - то есть это тот интервал, который я запросил первым у CreateDataSource...<br />-НО! Как только вызывается второй CreateDataSource для второго &quot;потока&quot; и навешивается callback - после этого любой вызываемый callback приходит только с интервалом &quot;INTERVAL_H4&quot; - что соотвевует второму вызову CreateDataSource - ТО ЕСТЬ произошло, как бы затирание подписки на колбек...<br />-НО ПОЧЕМУ ? Ведь я создал два разных &quot;потока&quot; которые хоть и связаныс основным луа-стеком, но сами обладают свои стеком, в который я и записываю результа от CreateDataSource.</p><p>Что то не понятно.</p>]]></content>
			<author>
				<name><![CDATA[Serg_]]></name>
				<uri>https://quik2dde.ru/profile.php?id=3371</uri>
			</author>
			<updated>2022-10-15T16:28:19Z</updated>
			<id>https://quik2dde.ru/viewtopic.php?pid=3839#p3839</id>
		</entry>
</feed>
